/*
 * Copyright Codeplay Software Ltd.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use these files except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// DO NOT MODIFY BY HAND
// This file was automatically generated by generate_depthwise_conv2d_tests.py.
// Results calculated using Tensorflow v1.12.0.

#include <gtest/gtest.h>

#include "sycldnn/padding_mode.h"

#include "test/types/cartesian_product.h"
#include "test/types/kernel_data_types.h"
#include "test/types/test_backend_types.h"
#include "test/types/to_gtest_types.h"

#include "test/depthwise_conv2d/window_stride_fixture.h"

#include <array>
#include <vector>

using DataTypeList = sycldnn::types::KernelDataTypes;
using Backends = sycldnn::types::DefaultBackendTypes;

using SNNTypePairs =
    sycldnn::types::CartesianProduct<DataTypeList, Backends>::type;
using GTestTypePairs = sycldnn::types::ToGTestTypes<SNNTypePairs>::type;

template <typename Pair>
using ForwardWindow3Stride1 =
    sycldnn::depthwise_conv2d::WindowStrideTest<Pair, 3, 1>;
TYPED_TEST_SUITE(ForwardWindow3Stride1, GTestTypePairs);
TYPED_TEST(ForwardWindow3Stride1, SAME1x4x4x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {111., 178., 217., 145., 231., 348.,
                                         393., 252., 363., 528., 573., 360.,
                                         197., 274., 295., 175.};
  const std::array<int, 4> in_shape = {{1, 4, 4, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x4x4x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {348., 393., 528., 573.};
  const std::array<int, 4> in_shape = {{1, 4, 4, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x4x4x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      208., 222., 332., 356., 404., 434., 268., 290., 429.,  462.,  642.,
      696., 723., 786., 459., 504., 669., 726., 966., 1056., 1047., 1146.,
      651., 720., 348., 394., 476., 548., 512., 590., 296.,  350.};
  const std::array<int, 4> in_shape = {{1, 4, 4, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x4x4x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {642., 696.,  723.,  786.,
                                         966., 1056., 1047., 1146.};
  const std::array<int, 4> in_shape = {{1, 4, 4, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x4x4x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      402.,  416.,  430.,  444.,  640.,  664.,  688.,  712.,  778.,  808.,
      838.,  868.,  514.,  536.,  558.,  580.,  825.,  858.,  891.,  924.,
      1230., 1284., 1338., 1392., 1383., 1446., 1509., 1572., 873.,  918.,
      963.,  1008., 1281., 1338., 1395., 1452., 1842., 1932., 2022., 2112.,
      1995., 2094., 2193., 2292., 1233., 1302., 1371., 1440., 650.,  696.,
      742.,  788.,  880.,  952.,  1024., 1096., 946.,  1024., 1102., 1180.,
      538.,  592.,  646.,  700.};
  const std::array<int, 4> in_shape = {{1, 4, 4, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x4x4x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1230., 1284., 1338., 1392., 1383., 1446., 1509., 1572.,
      1842., 1932., 2022., 2112., 1995., 2094., 2193., 2292.};
  const std::array<int, 4> in_shape = {{1, 4, 4, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x4x4x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      364.,  444.,  592.,  712.,  736.,  868.,  492.,  580.,
      798.,  924.,  1203., 1392., 1365., 1572., 870.,  1008.,
      1278., 1452., 1851., 2112., 2013., 2292., 1254., 1440.,
      668.,  788.,  916.,  1096., 988.,  1180., 572.,  700.};
  const std::array<int, 4> in_shape = {{1, 4, 4, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x4x4x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {1203., 1392., 1365., 1572.,
                                         1851., 2112., 2013., 2292.};
  const std::array<int, 4> in_shape = {{1, 4, 4, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x4x4x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      704.,  728.,  860.,  888.,  1142., 1184., 1376., 1424., 1418., 1472.,
      1676., 1736., 944.,  984.,  1116., 1160., 1536., 1596., 1782., 1848.,
      2307., 2406., 2676., 2784., 2613., 2730., 3018., 3144., 1656., 1740.,
      1926., 2016., 2448., 2556., 2790., 2904., 3531., 3702., 4044., 4224.,
      3837., 4026., 4386., 4584., 2376., 2508., 2742., 2880., 1248., 1336.,
      1484., 1576., 1694., 1832., 2048., 2192., 1826., 1976., 2204., 2360.,
      1040., 1144., 1292., 1400.};
  const std::array<int, 4> in_shape = {{1, 4, 4, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x4x4x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2307., 2406., 2676., 2784., 2613., 2730., 3018., 3144.,
      3531., 3702., 4044., 4224., 3837., 4026., 4386., 4584.};
  const std::array<int, 4> in_shape = {{1, 4, 4, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x4x4x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1384., 1408., 1432., 1456., 1692., 1720., 1748., 1776., 2242., 2284.,
      2326., 2368., 2704., 2752., 2800., 2848., 2782., 2836., 2890., 2944.,
      3292., 3352., 3412., 3472., 1848., 1888., 1928., 1968., 2188., 2232.,
      2276., 2320., 3012., 3072., 3132., 3192., 3498., 3564., 3630., 3696.,
      4515., 4614., 4713., 4812., 5244., 5352., 5460., 5568., 5109., 5226.,
      5343., 5460., 5910., 6036., 6162., 6288., 3228., 3312., 3396., 3480.,
      3762., 3852., 3942., 4032., 4788., 4896., 5004., 5112., 5466., 5580.,
      5694., 5808., 6891., 7062., 7233., 7404., 7908., 8088., 8268., 8448.,
      7485., 7674., 7863., 8052., 8574., 8772., 8970., 9168., 4620., 4752.,
      4884., 5016., 5346., 5484., 5622., 5760., 2408., 2496., 2584., 2672.,
      2876., 2968., 3060., 3152., 3250., 3388., 3526., 3664., 3952., 4096.,
      4240., 4384., 3502., 3652., 3802., 3952., 4252., 4408., 4564., 4720.,
      1976., 2080., 2184., 2288., 2476., 2584., 2692., 2800.};
  const std::array<int, 4> in_shape = {{1, 4, 4, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x4x4x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4515., 4614., 4713., 4812., 5244., 5352., 5460., 5568.,
      5109., 5226., 5343., 5460., 5910., 6036., 6162., 6288.,
      6891., 7062., 7233., 7404., 7908., 8088., 8268., 8448.,
      7485., 7674., 7863., 8052., 8574., 8772., 8970., 9168.};
  const std::array<int, 4> in_shape = {{1, 4, 4, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x4x4x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1308., 1456., 1612., 1776., 2146., 2368., 2602., 2848., 2698., 2944.,
      3202., 3472., 1804., 1968., 2140., 2320., 2958., 3192., 3438., 3696.,
      4461., 4812., 5181., 5568., 5073., 5460., 5865., 6288., 3222., 3480.,
      3750., 4032., 4782., 5112., 5454., 5808., 6909., 7404., 7917., 8448.,
      7521., 8052., 8601., 9168., 4662., 5016., 5382., 5760., 2444., 2672.,
      2908., 3152., 3322., 3664., 4018., 4384., 3586., 3952., 4330., 4720.,
      2044., 2288., 2540., 2800.};
  const std::array<int, 4> in_shape = {{1, 4, 4, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x4x4x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4461., 4812., 5181., 5568., 5073., 5460., 5865., 6288.,
      6909., 7404., 7917., 8448., 7521., 8052., 8601., 9168.};
  const std::array<int, 4> in_shape = {{1, 4, 4, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x4x4x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2572.,  2616.,  2864.,  2912.,  3172.,  3224.,  3496.,  3552.,  4214.,
      4292.,  4652.,  4736.,  5114.,  5204.,  5600.,  5696.,  5294.,  5396.,
      5780.,  5888.,  6290.,  6404.,  6824.,  6944.,  3532.,  3608.,  3856.,
      3936.,  4196.,  4280.,  4552.,  4640.,  5802.,  5916.,  6264.,  6384.,
      6750.,  6876.,  7260.,  7392.,  8733.,  8922.,  9426.,  9624.,  10155.,
      10362., 10920., 11136., 9921.,  10146., 10686., 10920., 11487., 11730.,
      12324., 12576., 6282.,  6444.,  6792.,  6960.,  7326.,  7500.,  7884.,
      8064.,  9354.,  9564.,  10008., 10224., 10686., 10908., 11388., 11616.,
      13485., 13818., 14466., 14808., 15483., 15834., 16536., 16896., 14673.,
      15042., 15726., 16104., 16815., 17202., 17940., 18336., 9066.,  9324.,
      9768.,  10032., 10494., 10764., 11244., 11520., 4716.,  4888.,  5168.,
      5344.,  5636.,  5816.,  6120.,  6304.,  6374.,  6644.,  7052.,  7328.,
      7754.,  8036.,  8480.,  8768.,  6878.,  7172.,  7604.,  7904.,  8354.,
      8660.,  9128.,  9440.,  3884.,  4088.,  4368.,  4576.,  4868.,  5080.,
      5384.,  5600.};
  const std::array<int, 4> in_shape = {{1, 4, 4, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x4x4x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      8733.,  8922.,  9426.,  9624.,  10155., 10362., 10920., 11136.,
      9921.,  10146., 10686., 10920., 11487., 11730., 12324., 12576.,
      13485., 13818., 14466., 14808., 15483., 15834., 16536., 16896.,
      14673., 15042., 15726., 16104., 16815., 17202., 17940., 18336.};
  const std::array<int, 4> in_shape = {{1, 4, 4, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x4x4x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5100.,  5144.,  5188.,  5232.,  5680.,  5728.,  5776.,  5824.,  6292.,
      6344.,  6396.,  6448.,  6936.,  6992.,  7048.,  7104.,  8350.,  8428.,
      8506.,  8584.,  9220.,  9304.,  9388.,  9472.,  10138., 10228., 10318.,
      10408., 11104., 11200., 11296., 11392., 10486., 10588., 10690., 10792.,
      11452., 11560., 11668., 11776., 12466., 12580., 12694., 12808., 13528.,
      13648., 13768., 13888., 6988.,  7064.,  7140.,  7216.,  7632.,  7712.,
      7792.,  7872.,  8308.,  8392.,  8476.,  8560.,  9016.,  9104.,  9192.,
      9280.,  11490., 11604., 11718., 11832., 12408., 12528., 12648., 12768.,
      13374., 13500., 13626., 13752., 14388., 14520., 14652., 14784., 17277.,
      17466., 17655., 17844., 18654., 18852., 19050., 19248., 20103., 20310.,
      20517., 20724., 21624., 21840., 22056., 22272., 19617., 19842., 20067.,
      20292., 21138., 21372., 21606., 21840., 22731., 22974., 23217., 23460.,
      24396., 24648., 24900., 25152., 12402., 12564., 12726., 12888., 13416.,
      13584., 13752., 13920., 14478., 14652., 14826., 15000., 15588., 15768.,
      15948., 16128., 18498., 18708., 18918., 19128., 19800., 20016., 20232.,
      20448., 21150., 21372., 21594., 21816., 22548., 22776., 23004., 23232.,
      26637., 26970., 27303., 27636., 28590., 28932., 29274., 29616., 30615.,
      30966., 31317., 31668., 32712., 33072., 33432., 33792., 28977., 29346.,
      29715., 30084., 31074., 31452., 31830., 32208., 33243., 33630., 34017.,
      34404., 35484., 35880., 36276., 36672., 17874., 18132., 18390., 18648.,
      19272., 19536., 19800., 20064., 20718., 20988., 21258., 21528., 22212.,
      22488., 22764., 23040., 9260.,  9432.,  9604.,  9776.,  10160., 10336.,
      10512., 10688., 11092., 11272., 11452., 11632., 12056., 12240., 12424.,
      12608., 12478., 12748., 13018., 13288., 13828., 14104., 14380., 14656.,
      15226., 15508., 15790., 16072., 16672., 16960., 17248., 17536., 13462.,
      13756., 14050., 14344., 14908., 15208., 15508., 15808., 16402., 16708.,
      17014., 17320., 17944., 18256., 18568., 18880., 7564.,  7768.,  7972.,
      8176.,  8528.,  8736.,  8944.,  9152.,  9524.,  9736.,  9948.,  10160.,
      10552., 10768., 10984., 11200.};
  const std::array<int, 4> in_shape = {{1, 4, 4, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x4x4x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      17277., 17466., 17655., 17844., 18654., 18852., 19050., 19248.,
      20103., 20310., 20517., 20724., 21624., 21840., 22056., 22272.,
      19617., 19842., 20067., 20292., 21138., 21372., 21606., 21840.,
      22731., 22974., 23217., 23460., 24396., 24648., 24900., 25152.,
      26637., 26970., 27303., 27636., 28590., 28932., 29274., 29616.,
      30615., 30966., 31317., 31668., 32712., 33072., 33432., 33792.,
      28977., 29346., 29715., 30084., 31074., 31452., 31830., 32208.,
      33243., 33630., 34017., 34404., 35484., 35880., 36276., 36672.};
  const std::array<int, 4> in_shape = {{1, 4, 4, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x4x5x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      128., 202., 241., 280., 184., 276., 411., 456., 501., 318.,
      441., 636., 681., 726., 453., 240., 331., 352., 373., 220.};
  const std::array<int, 4> in_shape = {{1, 4, 5, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x4x5x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {411., 456., 501., 636., 681., 726.};
  const std::array<int, 4> in_shape = {{1, 4, 5, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x4x5x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      240., 256., 377.,  404.,  449.,  482.,  521.,  560.,  340., 368.,
      513., 552., 759.,  822.,  840.,  912.,  921.,  1002., 579., 636.,
      813., 882., 1164., 1272., 1245., 1362., 1326., 1452., 819., 906.,
      424., 480., 575.,  662.,  611.,  704.,  647.,  746.,  372., 440.};
  const std::array<int, 4> in_shape = {{1, 4, 5, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x4x5x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {759.,  822.,  840.,  912.,
                                         921.,  1002., 1164., 1272.,
                                         1245., 1362., 1326., 1452.};
  const std::array<int, 4> in_shape = {{1, 4, 5, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x4x5x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      464.,  480.,  496.,  512.,  727.,  754.,  781.,  808.,  865.,  898.,
      931.,  964.,  1003., 1042., 1081., 1120., 652.,  680.,  708.,  736.,
      987.,  1026., 1065., 1104., 1455., 1518., 1581., 1644., 1608., 1680.,
      1752., 1824., 1761., 1842., 1923., 2004., 1101., 1158., 1215., 1272.,
      1557., 1626., 1695., 1764., 2220., 2328., 2436., 2544., 2373., 2490.,
      2607., 2724., 2526., 2652., 2778., 2904., 1551., 1638., 1725., 1812.,
      792.,  848.,  904.,  960.,  1063., 1150., 1237., 1324., 1129., 1222.,
      1315., 1408., 1195., 1294., 1393., 1492., 676.,  744.,  812.,  880.};
  const std::array<int, 4> in_shape = {{1, 4, 5, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x4x5x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1455., 1518., 1581., 1644., 1608., 1680., 1752., 1824.,
      1761., 1842., 1923., 2004., 2220., 2328., 2436., 2544.,
      2373., 2490., 2607., 2724., 2526., 2652., 2778., 2904.};
  const std::array<int, 4> in_shape = {{1, 4, 5, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x4x5x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      428.,  512.,  682.,  808.,  826.,  964.,  970.,  1120., 636.,  736.,
      966.,  1104., 1437., 1644., 1599., 1824., 1761., 2004., 1110., 1272.,
      1566., 1764., 2247., 2544., 2409., 2724., 2571., 2904., 1590., 1812.,
      820.,  960.,  1114., 1324., 1186., 1408., 1258., 1492., 724.,  880.};
  const std::array<int, 4> in_shape = {{1, 4, 5, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x4x5x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {1437., 1644., 1599., 1824.,
                                         1761., 2004., 2247., 2544.,
                                         2409., 2724., 2571., 2904.};
  const std::array<int, 4> in_shape = {{1, 4, 5, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x4x5x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      828.,  856.,  992.,  1024., 1316., 1364., 1562., 1616., 1592., 1652.,
      1862., 1928., 1868., 1940., 2162., 2240., 1220., 1272., 1416., 1472.,
      1860., 1932., 2130., 2208., 2757., 2874., 3162., 3288., 3063., 3198.,
      3504., 3648., 3369., 3522., 3846., 4008., 2112., 2220., 2430., 2544.,
      3000., 3132., 3390., 3528., 4287., 4494., 4872., 5088., 4593., 4818.,
      5214., 5448., 4899., 5142., 5556., 5808., 3012., 3180., 3450., 3624.,
      1532., 1640., 1808., 1920., 2060., 2228., 2474., 2648., 2192., 2372.,
      2630., 2816., 2324., 2516., 2786., 2984., 1316., 1448., 1624., 1760.};
  const std::array<int, 4> in_shape = {{1, 4, 5, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x4x5x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2757., 2874., 3162., 3288., 3063., 3198., 3504., 3648.,
      3369., 3522., 3846., 4008., 4287., 4494., 4872., 5088.,
      4593., 4818., 5214., 5448., 4899., 5142., 5556., 5808.};
  const std::array<int, 4> in_shape = {{1, 4, 5, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x4x5x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1628.,  1656.,  1684.,  1712.,  1952.,  1984.,  2016., 2048.,  2584.,
      2632.,  2680.,  2728.,  3070.,  3124.,  3178.,  3232., 3124.,  3184.,
      3244.,  3304.,  3658.,  3724.,  3790.,  3856.,  3664., 3736.,  3808.,
      3880.,  4246.,  4324.,  4402.,  4480.,  2388.,  2440., 2492.,  2544.,
      2776.,  2832.,  2888.,  2944.,  3648.,  3720.,  3792., 3864.,  4182.,
      4260.,  4338.,  4416.,  5397.,  5514.,  5631.,  5748., 6198.,  6324.,
      6450.,  6576.,  5991.,  6126.,  6261.,  6396.,  6864., 7008.,  7152.,
      7296.,  6585.,  6738.,  6891.,  7044.,  7530.,  7692., 7854.,  8016.,
      4116.,  4224.,  4332.,  4440.,  4746.,  4860.,  4974., 5088.,  5868.,
      6000.,  6132.,  6264.,  6642.,  6780.,  6918.,  7056., 8367.,  8574.,
      8781.,  8988.,  9528.,  9744.,  9960.,  10176., 8961., 9186.,  9411.,
      9636.,  10194., 10428., 10662., 10896., 9555.,  9798., 10041., 10284.,
      10860., 11112., 11364., 11616., 5856.,  6024.,  6192., 6360.,  6726.,
      6900.,  7074.,  7248.,  2956.,  3064.,  3172.,  3280., 3504.,  3616.,
      3728.,  3840.,  3952.,  4120.,  4288.,  4456.,  4774., 4948.,  5122.,
      5296.,  4204.,  4384.,  4564.,  4744.,  5074.,  5260., 5446.,  5632.,
      4456.,  4648.,  4840.,  5032.,  5374.,  5572.,  5770., 5968.,  2500.,
      2632.,  2764.,  2896.,  3112.,  3248.,  3384.,  3520.};
  const std::array<int, 4> in_shape = {{1, 4, 5, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x4x5x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5397., 5514., 5631.,  5748.,  6198.,  6324.,  6450.,  6576.,
      5991., 6126., 6261.,  6396.,  6864.,  7008.,  7152.,  7296.,
      6585., 6738., 6891.,  7044.,  7530.,  7692.,  7854.,  8016.,
      8367., 8574., 8781.,  8988.,  9528.,  9744.,  9960.,  10176.,
      8961., 9186., 9411.,  9636.,  10194., 10428., 10662., 10896.,
      9555., 9798., 10041., 10284., 10860., 11112., 11364., 11616.};
  const std::array<int, 4> in_shape = {{1, 4, 5, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x4x5x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1556.,  1712.,  1876.,  2048., 2494., 2728.,  2974.,  3232., 3046.,
      3304.,  3574.,  3856.,  3598., 3880., 4174.,  4480.,  2356., 2544.,
      2740.,  2944.,  3606.,  3864., 4134., 4416.,  5361.,  5748., 6153.,
      6576.,  5973.,  6396.,  6837., 7296., 6585.,  7044.,  7521., 8016.,
      4134.,  4440.,  4758.,  5088., 5886., 6264.,  6654.,  7056., 8421.,
      8988.,  9573.,  10176., 9033., 9636., 10257., 10896., 9645., 10284.,
      10941., 11616., 5934.,  6360., 6798., 7248.,  3012.,  3280., 3556.,
      3840.,  4054.,  4456.,  4870., 5296., 4318.,  4744.,  5182., 5632.,
      4582.,  5032.,  5494.,  5968., 2596., 2896.,  3204.,  3520.};
  const std::array<int, 4> in_shape = {{1, 4, 5, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x4x5x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5361., 5748., 6153.,  6576.,  5973., 6396.,  6837.,  7296.,
      6585., 7044., 7521.,  8016.,  8421., 8988.,  9573.,  10176.,
      9033., 9636., 10257., 10896., 9645., 10284., 10941., 11616.};
  const std::array<int, 4> in_shape = {{1, 4, 5, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x4x5x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3060.,  3112.,  3368.,  3424.,  3692.,  3752.,  4032.,  4096.,  4898.,
      4988.,  5360.,  5456.,  5846.,  5948.,  6356.,  6464.,  5978.,  6092.,
      6488.,  6608.,  7022.,  7148.,  7580.,  7712.,  7058.,  7196.,  7616.,
      7760.,  8198.,  8348.,  8804.,  8960.,  4612.,  4712.,  4984.,  5088.,
      5372.,  5480.,  5776.,  5888.,  7074.,  7212.,  7584.,  7728.,  8118.,
      8268.,  8676.,  8832.,  10497., 10722., 11262., 11496., 12063., 12306.,
      12900., 13152., 11685., 11946., 12522., 12792., 13395., 13674., 14304.,
      14592., 12873., 13170., 13782., 14088., 14727., 15042., 15708., 16032.,
      8058.,  8268.,  8664.,  8880.,  9294.,  9516.,  9948.,  10176., 11514.,
      11772., 12264., 12528., 13038., 13308., 13836., 14112., 16437., 16842.,
      17562., 17976., 18723., 19146., 19920., 20352., 17625., 18066., 18822.,
      19272., 20055., 20514., 21324., 21792., 18813., 19290., 20082., 20568.,
      21387., 21882., 22728., 23232., 11538., 11868., 12384., 12720., 13254.,
      13596., 14148., 14496., 5812.,  6024.,  6344.,  6560.,  6892.,  7112.,
      7456.,  7680.,  7778.,  8108.,  8576.,  8912.,  9398.,  9740.,  10244.,
      10592., 8282.,  8636.,  9128.,  9488.,  9998.,  10364., 10892., 11264.,
      8786.,  9164.,  9680.,  10064., 10598., 10988., 11540., 11936., 4932.,
      5192.,  5528.,  5792.,  6140.,  6408.,  6768.,  7040.};
  const std::array<int, 4> in_shape = {{1, 4, 5, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x4x5x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      10497., 10722., 11262., 11496., 12063., 12306., 12900., 13152.,
      11685., 11946., 12522., 12792., 13395., 13674., 14304., 14592.,
      12873., 13170., 13782., 14088., 14727., 15042., 15708., 16032.,
      16437., 16842., 17562., 17976., 18723., 19146., 19920., 20352.,
      17625., 18066., 18822., 19272., 20055., 20514., 21324., 21792.,
      18813., 19290., 20082., 20568., 21387., 21882., 22728., 23232.};
  const std::array<int, 4> in_shape = {{1, 4, 5, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x4x5x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6068.,  6120.,  6172.,  6224.,  6680.,  6736.,  6792.,  6848.,  7324.,
      7384.,  7444.,  7504.,  8000.,  8064.,  8128.,  8192.,  9706.,  9796.,
      9886.,  9976.,  10624., 10720., 10816., 10912., 11590., 11692., 11794.,
      11896., 12604., 12712., 12820., 12928., 11842., 11956., 12070., 12184.,
      12856., 12976., 13096., 13216., 13918., 14044., 14170., 14296., 15028.,
      15160., 15292., 15424., 13978., 14116., 14254., 14392., 15088., 15232.,
      15376., 15520., 16246., 16396., 16546., 16696., 17452., 17608., 17764.,
      17920., 9124.,  9224.,  9324.,  9424.,  9864.,  9968.,  10072., 10176.,
      10636., 10744., 10852., 10960., 11440., 11552., 11664., 11776., 14010.,
      14148., 14286., 14424., 15024., 15168., 15312., 15456., 16086., 16236.,
      16386., 16536., 17196., 17352., 17508., 17664., 20769., 20994., 21219.,
      21444., 22290., 22524., 22758., 22992., 23883., 24126., 24369., 24612.,
      25548., 25800., 26052., 26304., 23109., 23370., 23631., 23892., 24774.,
      25044., 25314., 25584., 26511., 26790., 27069., 27348., 28320., 28608.,
      28896., 29184., 25449., 25746., 26043., 26340., 27258., 27564., 27870.,
      28176., 29139., 29454., 29769., 30084., 31092., 31416., 31740., 32064.,
      15906., 16116., 16326., 16536., 17112., 17328., 17544., 17760., 18366.,
      18588., 18810., 19032., 19668., 19896., 20124., 20352., 22770., 23028.,
      23286., 23544., 24264., 24528., 24792., 25056., 25806., 26076., 26346.,
      26616., 27396., 27672., 27948., 28224., 32469., 32874., 33279., 33684.,
      34710., 35124., 35538., 35952., 37023., 37446., 37869., 38292., 39408.,
      39840., 40272., 40704., 34809., 35250., 35691., 36132., 37194., 37644.,
      38094., 38544., 39651., 40110., 40569., 41028., 42180., 42648., 43116.,
      43584., 37149., 37626., 38103., 38580., 39678., 40164., 40650., 41136.,
      42279., 42774., 43269., 43764., 44952., 45456., 45960., 46464., 22746.,
      23076., 23406., 23736., 24432., 24768., 25104., 25440., 26166., 26508.,
      26850., 27192., 27948., 28296., 28644., 28992., 11412., 11624., 11836.,
      12048., 12472., 12688., 12904., 13120., 13564., 13784., 14004., 14224.,
      14688., 14912., 15136., 15360., 15226., 15556., 15886., 16216., 16816.,
      17152., 17488., 17824., 18454., 18796., 19138., 19480., 20140., 20488.,
      20836., 21184., 16210., 16564., 16918., 17272., 17896., 18256., 18616.,
      18976., 19630., 19996., 20362., 20728., 21412., 21784., 22156., 22528.,
      17194., 17572., 17950., 18328., 18976., 19360., 19744., 20128., 20806.,
      21196., 21586., 21976., 22684., 23080., 23476., 23872., 9604.,  9864.,
      10124., 10384., 10792., 11056., 11320., 11584., 12012., 12280., 12548.,
      12816., 13264., 13536., 13808., 14080.};
  const std::array<int, 4> in_shape = {{1, 4, 5, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x4x5x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      20769., 20994., 21219., 21444., 22290., 22524., 22758., 22992., 23883.,
      24126., 24369., 24612., 25548., 25800., 26052., 26304., 23109., 23370.,
      23631., 23892., 24774., 25044., 25314., 25584., 26511., 26790., 27069.,
      27348., 28320., 28608., 28896., 29184., 25449., 25746., 26043., 26340.,
      27258., 27564., 27870., 28176., 29139., 29454., 29769., 30084., 31092.,
      31416., 31740., 32064., 32469., 32874., 33279., 33684., 34710., 35124.,
      35538., 35952., 37023., 37446., 37869., 38292., 39408., 39840., 40272.,
      40704., 34809., 35250., 35691., 36132., 37194., 37644., 38094., 38544.,
      39651., 40110., 40569., 41028., 42180., 42648., 43116., 43584., 37149.,
      37626., 38103., 38580., 39678., 40164., 40650., 41136., 42279., 42774.,
      43269., 43764., 44952., 45456., 45960., 46464.};
  const std::array<int, 4> in_shape = {{1, 4, 5, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x4x6x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      145., 226., 265., 304., 343., 223., 321., 474., 519., 564., 609., 384.,
      519., 744., 789., 834., 879., 546., 283., 388., 409., 430., 451., 265.};
  const std::array<int, 4> in_shape = {{1, 4, 6, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x4x6x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {474., 519., 564., 609.,
                                         744., 789., 834., 879.};
  const std::array<int, 4> in_shape = {{1, 4, 6, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x4x6x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      272.,  290.,  422.,  452.,  494., 530.,  566.,  608.,  638.,  686.,
      412.,  446.,  597.,  642.,  876., 948.,  957.,  1038., 1038., 1128.,
      1119., 1218., 699.,  768.,  957., 1038., 1362., 1488., 1443., 1578.,
      1524., 1668., 1605., 1758., 987., 1092., 500.,  566.,  674.,  776.,
      710.,  818.,  746.,  860.,  782., 902.,  448.,  530.};
  const std::array<int, 4> in_shape = {{1, 4, 6, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x4x6x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      876.,  948.,  957.,  1038., 1038., 1128., 1119., 1218.,
      1362., 1488., 1443., 1578., 1524., 1668., 1605., 1758.};
  const std::array<int, 4> in_shape = {{1, 4, 6, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x4x6x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      526.,  544.,  562.,  580.,  814.,  844.,  874.,  904.,  952.,  988.,
      1024., 1060., 1090., 1132., 1174., 1216., 1228., 1276., 1324., 1372.,
      790.,  824.,  858.,  892.,  1149., 1194., 1239., 1284., 1680., 1752.,
      1824., 1896., 1833., 1914., 1995., 2076., 1986., 2076., 2166., 2256.,
      2139., 2238., 2337., 2436., 1329., 1398., 1467., 1536., 1833., 1914.,
      1995., 2076., 2598., 2724., 2850., 2976., 2751., 2886., 3021., 3156.,
      2904., 3048., 3192., 3336., 3057., 3210., 3363., 3516., 1869., 1974.,
      2079., 2184., 934.,  1000., 1066., 1132., 1246., 1348., 1450., 1552.,
      1312., 1420., 1528., 1636., 1378., 1492., 1606., 1720., 1444., 1564.,
      1684., 1804., 814.,  896.,  978.,  1060.};
  const std::array<int, 4> in_shape = {{1, 4, 6, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x4x6x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1680., 1752., 1824., 1896., 1833., 1914., 1995., 2076.,
      1986., 2076., 2166., 2256., 2139., 2238., 2337., 2436.,
      2598., 2724., 2850., 2976., 2751., 2886., 3021., 3156.,
      2904., 3048., 3192., 3336., 3057., 3210., 3363., 3516.};
  const std::array<int, 4> in_shape = {{1, 4, 6, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x4x6x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      492.,  580.,  772.,  904.,  916.,  1060., 1060., 1216., 1204., 1372.,
      780.,  892.,  1134., 1284., 1671., 1896., 1833., 2076., 1995., 2256.,
      2157., 2436., 1350., 1536., 1854., 2076., 2643., 2976., 2805., 3156.,
      2967., 3336., 3129., 3516., 1926., 2184., 972.,  1132., 1312., 1552.,
      1384., 1636., 1456., 1720., 1528., 1804., 876.,  1060.};
  const std::array<int, 4> in_shape = {{1, 4, 6, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x4x6x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1671., 1896., 1833., 2076., 1995., 2256., 2157., 2436.,
      2643., 2976., 2805., 3156., 2967., 3336., 3129., 3516.};
  const std::array<int, 4> in_shape = {{1, 4, 6, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x4x6x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      952.,  984.,  1124., 1160., 1490., 1544., 1748., 1808., 1766., 1832.,
      2048., 2120., 2042., 2120., 2348., 2432., 2318., 2408., 2648., 2744.,
      1496., 1560., 1716., 1784., 2184., 2268., 2478., 2568., 3207., 3342.,
      3648., 3792., 3513., 3666., 3990., 4152., 3819., 3990., 4332., 4512.,
      4125., 4314., 4674., 4872., 2568., 2700., 2934., 3072., 3552., 3708.,
      3990., 4152., 5043., 5286., 5700., 5952., 5349., 5610., 6042., 6312.,
      5655., 5934., 6384., 6672., 5961., 6258., 6726., 7032., 3648., 3852.,
      4158., 4368., 1816., 1944., 2132., 2264., 2426., 2624., 2900., 3104.,
      2558., 2768., 3056., 3272., 2690., 2912., 3212., 3440., 2822., 3056.,
      3368., 3608., 1592., 1752., 1956., 2120.};
  const std::array<int, 4> in_shape = {{1, 4, 6, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x4x6x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3207., 3342., 3648., 3792., 3513., 3666., 3990., 4152.,
      3819., 3990., 4332., 4512., 4125., 4314., 4674., 4872.,
      5043., 5286., 5700., 5952., 5349., 5610., 6042., 6312.,
      5655., 5934., 6384., 6672., 5961., 6258., 6726., 7032.};
  const std::array<int, 4> in_shape = {{1, 4, 6, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x4x6x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1872.,  1904.,  1936.,  1968.,  2212.,  2248.,  2284.,  2320.,  2926.,
      2980.,  3034.,  3088.,  3436.,  3496.,  3556.,  3616.,  3466.,  3532.,
      3598.,  3664.,  4024.,  4096.,  4168.,  4240.,  4006.,  4084.,  4162.,
      4240.,  4612.,  4696.,  4780.,  4864.,  4546.,  4636.,  4726.,  4816.,
      5200.,  5296.,  5392.,  5488.,  2928.,  2992.,  3056.,  3120.,  3364.,
      3432.,  3500.,  3568.,  4284.,  4368.,  4452.,  4536.,  4866.,  4956.,
      5046.,  5136.,  6279.,  6414.,  6549.,  6684.,  7152.,  7296.,  7440.,
      7584.,  6873.,  7026.,  7179.,  7332.,  7818.,  7980.,  8142.,  8304.,
      7467.,  7638.,  7809.,  7980.,  8484.,  8664.,  8844.,  9024.,  8061.,
      8250.,  8439.,  8628.,  9150.,  9348.,  9546.,  9744.,  5004.,  5136.,
      5268.,  5400.,  5730.,  5868.,  6006.,  6144.,  6948.,  7104.,  7260.,
      7416.,  7818.,  7980.,  8142.,  8304.,  9843.,  10086., 10329., 10572.,
      11148., 11400., 11652., 11904., 10437., 10698., 10959., 11220., 11814.,
      12084., 12354., 12624., 11031., 11310., 11589., 11868., 12480., 12768.,
      13056., 13344., 11625., 11922., 12219., 12516., 13146., 13452., 13758.,
      14064., 7092.,  7296.,  7500.,  7704.,  8106.,  8316.,  8526.,  8736.,
      3504.,  3632.,  3760.,  3888.,  4132.,  4264.,  4396.,  4528.,  4654.,
      4852.,  5050.,  5248.,  5596.,  5800.,  6004.,  6208.,  4906.,  5116.,
      5326.,  5536.,  5896.,  6112.,  6328.,  6544.,  5158.,  5380.,  5602.,
      5824.,  6196.,  6424.,  6652.,  6880.,  5410.,  5644.,  5878.,  6112.,
      6496.,  6736.,  6976.,  7216.,  3024.,  3184.,  3344.,  3504.,  3748.,
      3912.,  4076.,  4240.};
  const std::array<int, 4> in_shape = {{1, 4, 6, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x4x6x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6279.,  6414.,  6549.,  6684.,  7152.,  7296.,  7440.,  7584.,
      6873.,  7026.,  7179.,  7332.,  7818.,  7980.,  8142.,  8304.,
      7467.,  7638.,  7809.,  7980.,  8484.,  8664.,  8844.,  9024.,
      8061.,  8250.,  8439.,  8628.,  9150.,  9348.,  9546.,  9744.,
      9843.,  10086., 10329., 10572., 11148., 11400., 11652., 11904.,
      10437., 10698., 10959., 11220., 11814., 12084., 12354., 12624.,
      11031., 11310., 11589., 11868., 12480., 12768., 13056., 13344.,
      11625., 11922., 12219., 12516., 13146., 13452., 13758., 14064.};
  const std::array<int, 4> in_shape = {{1, 4, 6, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x4x6x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1804.,  1968.,  2140.,  2320.,  2842.,  3088.,  3346.,  3616.,  3394.,
      3664.,  3946.,  4240.,  3946.,  4240.,  4546.,  4864.,  4498.,  4816.,
      5146.,  5488.,  2908.,  3120.,  3340.,  3568.,  4254.,  4536.,  4830.,
      5136.,  6261.,  6684.,  7125.,  7584.,  6873.,  7332.,  7809.,  8304.,
      7485.,  7980.,  8493.,  9024.,  8097.,  8628.,  9177.,  9744.,  5046.,
      5400.,  5766.,  6144.,  6990.,  7416.,  7854.,  8304.,  9933.,  10572.,
      11229., 11904., 10545., 11220., 11913., 12624., 11157., 11868., 12597.,
      13344., 11769., 12516., 13281., 14064., 7206.,  7704.,  8214.,  8736.,
      3580.,  3888.,  4204.,  4528.,  4786.,  5248.,  5722.,  6208.,  5050.,
      5536.,  6034.,  6544.,  5314.,  5824.,  6346.,  6880.,  5578.,  6112.,
      6658.,  7216.,  3148.,  3504.,  3868.,  4240.};
  const std::array<int, 4> in_shape = {{1, 4, 6, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x4x6x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6261.,  6684.,  7125.,  7584.,  6873.,  7332.,  7809.,  8304.,
      7485.,  7980.,  8493.,  9024.,  8097.,  8628.,  9177.,  9744.,
      9933.,  10572., 11229., 11904., 10545., 11220., 11913., 12624.,
      11157., 11868., 12597., 13344., 11769., 12516., 13281., 14064.};
  const std::array<int, 4> in_shape = {{1, 4, 6, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x4x6x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3548.,  3608.,  3872.,  3936.,  4212.,  4280.,  4568.,  4640.,  5582.,
      5684.,  6068.,  6176.,  6578.,  6692.,  7112.,  7232.,  6662.,  6788.,
      7196.,  7328.,  7754.,  7892.,  8336.,  8480.,  7742.,  7892.,  8324.,
      8480.,  8930.,  9092.,  9560.,  9728.,  8822.,  8996.,  9452.,  9632.,
      10106., 10292., 10784., 10976., 5692.,  5816.,  6112.,  6240.,  6548.,
      6680.,  7000.,  7136.,  8346.,  8508.,  8904.,  9072.,  9486.,  9660.,
      10092., 10272., 12261., 12522., 13098., 13368., 13971., 14250., 14880.,
      15168., 13449., 13746., 14358., 14664., 15303., 15618., 16284., 16608.,
      14637., 14970., 15618., 15960., 16635., 16986., 17688., 18048., 15825.,
      16194., 16878., 17256., 17967., 18354., 19092., 19488., 9834.,  10092.,
      10536., 10800., 11262., 11532., 12012., 12288., 13674., 13980., 14520.,
      14832., 15390., 15708., 16284., 16608., 19389., 19866., 20658., 21144.,
      21963., 22458., 23304., 23808., 20577., 21090., 21918., 22440., 23295.,
      23826., 24708., 25248., 21765., 22314., 23178., 23736., 24627., 25194.,
      26112., 26688., 22953., 23538., 24438., 25032., 25959., 26562., 27516.,
      28128., 14010., 14412., 15000., 15408., 16014., 16428., 17052., 17472.,
      6908.,  7160.,  7520.,  7776.,  8148.,  8408.,  8792.,  9056.,  9182.,
      9572.,  10100., 10496., 11042., 11444., 12008., 12416., 9686.,  10100.,
      10652., 11072., 11642., 12068., 12656., 13088., 10190., 10628., 11204.,
      11648., 12242., 12692., 13304., 13760., 10694., 11156., 11756., 12224.,
      12842., 13316., 13952., 14432., 5980.,  6296.,  6688.,  7008.,  7412.,
      7736.,  8152.,  8480.};
  const std::array<int, 4> in_shape = {{1, 4, 6, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x4x6x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      12261., 12522., 13098., 13368., 13971., 14250., 14880., 15168.,
      13449., 13746., 14358., 14664., 15303., 15618., 16284., 16608.,
      14637., 14970., 15618., 15960., 16635., 16986., 17688., 18048.,
      15825., 16194., 16878., 17256., 17967., 18354., 19092., 19488.,
      19389., 19866., 20658., 21144., 21963., 22458., 23304., 23808.,
      20577., 21090., 21918., 22440., 23295., 23826., 24708., 25248.,
      21765., 22314., 23178., 23736., 24627., 25194., 26112., 26688.,
      22953., 23538., 24438., 25032., 25959., 26562., 27516., 28128.};
  const std::array<int, 4> in_shape = {{1, 4, 6, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x4x6x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      7036.,  7096.,  7156.,  7216.,  7680.,  7744.,  7808.,  7872.,  8356.,
      8424.,  8492.,  8560.,  9064.,  9136.,  9208.,  9280.,  11062., 11164.,
      11266., 11368., 12028., 12136., 12244., 12352., 13042., 13156., 13270.,
      13384., 14104., 14224., 14344., 14464., 13198., 13324., 13450., 13576.,
      14260., 14392., 14524., 14656., 15370., 15508., 15646., 15784., 16528.,
      16672., 16816., 16960., 15334., 15484., 15634., 15784., 16492., 16648.,
      16804., 16960., 17698., 17860., 18022., 18184., 18952., 19120., 19288.,
      19456., 17470., 17644., 17818., 17992., 18724., 18904., 19084., 19264.,
      20026., 20212., 20398., 20584., 21376., 21568., 21760., 21952., 11260.,
      11384., 11508., 11632., 12096., 12224., 12352., 12480., 12964., 13096.,
      13228., 13360., 13864., 14000., 14136., 14272., 16530., 16692., 16854.,
      17016., 17640., 17808., 17976., 18144., 18798., 18972., 19146., 19320.,
      20004., 20184., 20364., 20544., 24261., 24522., 24783., 25044., 25926.,
      26196., 26466., 26736., 27663., 27942., 28221., 28500., 29472., 29760.,
      30048., 30336., 26601., 26898., 27195., 27492., 28410., 28716., 29022.,
      29328., 30291., 30606., 30921., 31236., 32244., 32568., 32892., 33216.,
      28941., 29274., 29607., 29940., 30894., 31236., 31578., 31920., 32919.,
      33270., 33621., 33972., 35016., 35376., 35736., 36096., 31281., 31650.,
      32019., 32388., 33378., 33756., 34134., 34512., 35547., 35934., 36321.,
      36708., 37788., 38184., 38580., 38976., 19410., 19668., 19926., 20184.,
      20808., 21072., 21336., 21600., 22254., 22524., 22794., 23064., 23748.,
      24024., 24300., 24576., 27042., 27348., 27654., 27960., 28728., 29040.,
      29352., 29664., 30462., 30780., 31098., 31416., 32244., 32568., 32892.,
      33216., 38301., 38778., 39255., 39732., 40830., 41316., 41802., 42288.,
      43431., 43926., 44421., 44916., 46104., 46608., 47112., 47616., 40641.,
      41154., 41667., 42180., 43314., 43836., 44358., 44880., 46059., 46590.,
      47121., 47652., 48876., 49416., 49956., 50496., 42981., 43530., 44079.,
      44628., 45798., 46356., 46914., 47472., 48687., 49254., 49821., 50388.,
      51648., 52224., 52800., 53376., 45321., 45906., 46491., 47076., 48282.,
      48876., 49470., 50064., 51315., 51918., 52521., 53124., 54420., 55032.,
      55644., 56256., 27618., 28020., 28422., 28824., 29592., 30000., 30408.,
      30816., 31614., 32028., 32442., 32856., 33684., 34104., 34524., 34944.,
      13564., 13816., 14068., 14320., 14784., 15040., 15296., 15552., 16036.,
      16296., 16556., 16816., 17320., 17584., 17848., 18112., 17974., 18364.,
      18754., 19144., 19804., 20200., 20596., 20992., 21682., 22084., 22486.,
      22888., 23608., 24016., 24424., 24832., 18958., 19372., 19786., 20200.,
      20884., 21304., 21724., 22144., 22858., 23284., 23710., 24136., 24880.,
      25312., 25744., 26176., 19942., 20380., 20818., 21256., 21964., 22408.,
      22852., 23296., 24034., 24484., 24934., 25384., 26152., 26608., 27064.,
      27520., 20926., 21388., 21850., 22312., 23044., 23512., 23980., 24448.,
      25210., 25684., 26158., 26632., 27424., 27904., 28384., 28864., 11644.,
      11960., 12276., 12592., 13056., 13376., 13696., 14016., 14500., 14824.,
      15148., 15472., 15976., 16304., 16632., 16960.};
  const std::array<int, 4> in_shape = {{1, 4, 6, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x4x6x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      24261., 24522., 24783., 25044., 25926., 26196., 26466., 26736., 27663.,
      27942., 28221., 28500., 29472., 29760., 30048., 30336., 26601., 26898.,
      27195., 27492., 28410., 28716., 29022., 29328., 30291., 30606., 30921.,
      31236., 32244., 32568., 32892., 33216., 28941., 29274., 29607., 29940.,
      30894., 31236., 31578., 31920., 32919., 33270., 33621., 33972., 35016.,
      35376., 35736., 36096., 31281., 31650., 32019., 32388., 33378., 33756.,
      34134., 34512., 35547., 35934., 36321., 36708., 37788., 38184., 38580.,
      38976., 38301., 38778., 39255., 39732., 40830., 41316., 41802., 42288.,
      43431., 43926., 44421., 44916., 46104., 46608., 47112., 47616., 40641.,
      41154., 41667., 42180., 43314., 43836., 44358., 44880., 46059., 46590.,
      47121., 47652., 48876., 49416., 49956., 50496., 42981., 43530., 44079.,
      44628., 45798., 46356., 46914., 47472., 48687., 49254., 49821., 50388.,
      51648., 52224., 52800., 53376., 45321., 45906., 46491., 47076., 48282.,
      48876., 49470., 50064., 51315., 51918., 52521., 53124., 54420., 55032.,
      55644., 56256.};
  const std::array<int, 4> in_shape = {{1, 4, 6, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x5x4x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      111., 178., 217., 145., 231., 348., 393., 252., 363., 528.,
      573., 360., 495., 708., 753., 468., 261., 358., 379., 223.};
  const std::array<int, 4> in_shape = {{1, 5, 4, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x5x4x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {348., 393., 528., 573., 708., 753.};
  const std::array<int, 4> in_shape = {{1, 5, 4, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x5x4x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      208.,  222.,  332., 356., 404., 434., 268.,  290.,  429.,  462.,
      642.,  696.,  723., 786., 459., 504., 669.,  726.,  966.,  1056.,
      1047., 1146., 651., 720., 909., 990., 1290., 1416., 1371., 1506.,
      843.,  936.,  460., 522., 620., 716., 656.,  758.,  376.,  446.};
  const std::array<int, 4> in_shape = {{1, 5, 4, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x5x4x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {642.,  696.,  723.,  786.,
                                         966.,  1056., 1047., 1146.,
                                         1290., 1416., 1371., 1506.};
  const std::array<int, 4> in_shape = {{1, 5, 4, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x5x4x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      402.,  416.,  430.,  444.,  640.,  664.,  688.,  712.,  778.,  808.,
      838.,  868.,  514.,  536.,  558.,  580.,  825.,  858.,  891.,  924.,
      1230., 1284., 1338., 1392., 1383., 1446., 1509., 1572., 873.,  918.,
      963.,  1008., 1281., 1338., 1395., 1452., 1842., 1932., 2022., 2112.,
      1995., 2094., 2193., 2292., 1233., 1302., 1371., 1440., 1737., 1818.,
      1899., 1980., 2454., 2580., 2706., 2832., 2607., 2742., 2877., 3012.,
      1593., 1686., 1779., 1872., 858.,  920.,  982.,  1044., 1144., 1240.,
      1336., 1432., 1210., 1312., 1414., 1516., 682.,  752.,  822.,  892.};
  const std::array<int, 4> in_shape = {{1, 5, 4, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x5x4x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1230., 1284., 1338., 1392., 1383., 1446., 1509., 1572.,
      1842., 1932., 2022., 2112., 1995., 2094., 2193., 2292.,
      2454., 2580., 2706., 2832., 2607., 2742., 2877., 3012.};
  const std::array<int, 4> in_shape = {{1, 5, 4, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x5x4x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      364.,  444.,  592.,  712.,  736.,  868.,  492.,  580.,  798.,  924.,
      1203., 1392., 1365., 1572., 870.,  1008., 1278., 1452., 1851., 2112.,
      2013., 2292., 1254., 1440., 1758., 1980., 2499., 2832., 2661., 3012.,
      1638., 1872., 892.,  1044., 1204., 1432., 1276., 1516., 732.,  892.};
  const std::array<int, 4> in_shape = {{1, 5, 4, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x5x4x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {1203., 1392., 1365., 1572.,
                                         1851., 2112., 2013., 2292.,
                                         2499., 2832., 2661., 3012.};
  const std::array<int, 4> in_shape = {{1, 5, 4, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x5x4x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      704.,  728.,  860.,  888.,  1142., 1184., 1376., 1424., 1418., 1472.,
      1676., 1736., 944.,  984.,  1116., 1160., 1536., 1596., 1782., 1848.,
      2307., 2406., 2676., 2784., 2613., 2730., 3018., 3144., 1656., 1740.,
      1926., 2016., 2448., 2556., 2790., 2904., 3531., 3702., 4044., 4224.,
      3837., 4026., 4386., 4584., 2376., 2508., 2742., 2880., 3360., 3516.,
      3798., 3960., 4755., 4998., 5412., 5664., 5061., 5322., 5754., 6024.,
      3096., 3276., 3558., 3744., 1664., 1784., 1964., 2088., 2222., 2408.,
      2672., 2864., 2354., 2552., 2828., 3032., 1328., 1464., 1644., 1784.};
  const std::array<int, 4> in_shape = {{1, 5, 4, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x5x4x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2307., 2406., 2676., 2784., 2613., 2730., 3018., 3144.,
      3531., 3702., 4044., 4224., 3837., 4026., 4386., 4584.,
      4755., 4998., 5412., 5664., 5061., 5322., 5754., 6024.};
  const std::array<int, 4> in_shape = {{1, 5, 4, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x5x4x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1384.,  1408.,  1432.,  1456.,  1692., 1720.,  1748.,  1776.,  2242.,
      2284.,  2326.,  2368.,  2704.,  2752., 2800.,  2848.,  2782.,  2836.,
      2890.,  2944.,  3292.,  3352.,  3412., 3472.,  1848.,  1888.,  1928.,
      1968.,  2188.,  2232.,  2276.,  2320., 3012.,  3072.,  3132.,  3192.,
      3498.,  3564.,  3630.,  3696.,  4515., 4614.,  4713.,  4812.,  5244.,
      5352.,  5460.,  5568.,  5109.,  5226., 5343.,  5460.,  5910.,  6036.,
      6162.,  6288.,  3228.,  3312.,  3396., 3480.,  3762.,  3852.,  3942.,
      4032.,  4788.,  4896.,  5004.,  5112., 5466.,  5580.,  5694.,  5808.,
      6891.,  7062.,  7233.,  7404.,  7908., 8088.,  8268.,  8448.,  7485.,
      7674.,  7863.,  8052.,  8574.,  8772., 8970.,  9168.,  4620.,  4752.,
      4884.,  5016.,  5346.,  5484.,  5622., 5760.,  6564.,  6720.,  6876.,
      7032.,  7434.,  7596.,  7758.,  7920., 9267.,  9510.,  9753.,  9996.,
      10572., 10824., 11076., 11328., 9861., 10122., 10383., 10644., 11238.,
      11508., 11778., 12048., 6012.,  6192., 6372.,  6552.,  6930.,  7116.,
      7302.,  7488.,  3208.,  3328.,  3448., 3568.,  3804.,  3928.,  4052.,
      4176.,  4258.,  4444.,  4630.,  4816., 5152.,  5344.,  5536.,  5728.,
      4510.,  4708.,  4906.,  5104.,  5452., 5656.,  5860.,  6064.,  2520.,
      2656.,  2792.,  2928.,  3148.,  3288., 3428.,  3568.};
  const std::array<int, 4> in_shape = {{1, 5, 4, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x5x4x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4515., 4614.,  4713.,  4812.,  5244.,  5352.,  5460.,  5568.,
      5109., 5226.,  5343.,  5460.,  5910.,  6036.,  6162.,  6288.,
      6891., 7062.,  7233.,  7404.,  7908.,  8088.,  8268.,  8448.,
      7485., 7674.,  7863.,  8052.,  8574.,  8772.,  8970.,  9168.,
      9267., 9510.,  9753.,  9996.,  10572., 10824., 11076., 11328.,
      9861., 10122., 10383., 10644., 11238., 11508., 11778., 12048.};
  const std::array<int, 4> in_shape = {{1, 5, 4, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x5x4x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1308., 1456., 1612., 1776., 2146.,  2368.,  2602., 2848.,  2698.,  2944.,
      3202., 3472., 1804., 1968., 2140.,  2320.,  2958., 3192.,  3438.,  3696.,
      4461., 4812., 5181., 5568., 5073.,  5460.,  5865., 6288.,  3222.,  3480.,
      3750., 4032., 4782., 5112., 5454.,  5808.,  6909., 7404.,  7917.,  8448.,
      7521., 8052., 8601., 9168., 4662.,  5016.,  5382., 5760.,  6606.,  7032.,
      7470., 7920., 9357., 9996., 10653., 11328., 9969., 10644., 11337., 12048.,
      6102., 6552., 7014., 7488., 3276.,  3568.,  3868., 4176.,  4378.,  4816.,
      5266., 5728., 4642., 5104., 5578.,  6064.,  2620., 2928.,  3244.,  3568.};
  const std::array<int, 4> in_shape = {{1, 5, 4, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x5x4x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4461., 4812., 5181.,  5568.,  5073., 5460.,  5865.,  6288.,
      6909., 7404., 7917.,  8448.,  7521., 8052.,  8601.,  9168.,
      9357., 9996., 10653., 11328., 9969., 10644., 11337., 12048.};
  const std::array<int, 4> in_shape = {{1, 5, 4, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x5x4x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2572.,  2616.,  2864.,  2912.,  3172.,  3224.,  3496.,  3552.,  4214.,
      4292.,  4652.,  4736.,  5114.,  5204.,  5600.,  5696.,  5294.,  5396.,
      5780.,  5888.,  6290.,  6404.,  6824.,  6944.,  3532.,  3608.,  3856.,
      3936.,  4196.,  4280.,  4552.,  4640.,  5802.,  5916.,  6264.,  6384.,
      6750.,  6876.,  7260.,  7392.,  8733.,  8922.,  9426.,  9624.,  10155.,
      10362., 10920., 11136., 9921.,  10146., 10686., 10920., 11487., 11730.,
      12324., 12576., 6282.,  6444.,  6792.,  6960.,  7326.,  7500.,  7884.,
      8064.,  9354.,  9564.,  10008., 10224., 10686., 10908., 11388., 11616.,
      13485., 13818., 14466., 14808., 15483., 15834., 16536., 16896., 14673.,
      15042., 15726., 16104., 16815., 17202., 17940., 18336., 9066.,  9324.,
      9768.,  10032., 10494., 10764., 11244., 11520., 12906., 13212., 13752.,
      14064., 14622., 14940., 15516., 15840., 18237., 18714., 19506., 19992.,
      20811., 21306., 22152., 22656., 19425., 19938., 20766., 21288., 22143.,
      22674., 23556., 24096., 11850., 12204., 12744., 13104., 13662., 14028.,
      14604., 14976., 6316.,  6552.,  6896.,  7136.,  7492.,  7736.,  8104.,
      8352.,  8390.,  8756.,  9260.,  9632.,  10154., 10532., 11072., 11456.,
      8894.,  9284.,  9812.,  10208., 10754., 11156., 11720., 12128., 4972.,
      5240.,  5584.,  5856.,  6212.,  6488.,  6856.,  7136.};
  const std::array<int, 4> in_shape = {{1, 5, 4, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x5x4x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      8733.,  8922.,  9426.,  9624.,  10155., 10362., 10920., 11136.,
      9921.,  10146., 10686., 10920., 11487., 11730., 12324., 12576.,
      13485., 13818., 14466., 14808., 15483., 15834., 16536., 16896.,
      14673., 15042., 15726., 16104., 16815., 17202., 17940., 18336.,
      18237., 18714., 19506., 19992., 20811., 21306., 22152., 22656.,
      19425., 19938., 20766., 21288., 22143., 22674., 23556., 24096.};
  const std::array<int, 4> in_shape = {{1, 5, 4, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x5x4x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5100.,  5144.,  5188.,  5232.,  5680.,  5728.,  5776.,  5824.,  6292.,
      6344.,  6396.,  6448.,  6936.,  6992.,  7048.,  7104.,  8350.,  8428.,
      8506.,  8584.,  9220.,  9304.,  9388.,  9472.,  10138., 10228., 10318.,
      10408., 11104., 11200., 11296., 11392., 10486., 10588., 10690., 10792.,
      11452., 11560., 11668., 11776., 12466., 12580., 12694., 12808., 13528.,
      13648., 13768., 13888., 6988.,  7064.,  7140.,  7216.,  7632.,  7712.,
      7792.,  7872.,  8308.,  8392.,  8476.,  8560.,  9016.,  9104.,  9192.,
      9280.,  11490., 11604., 11718., 11832., 12408., 12528., 12648., 12768.,
      13374., 13500., 13626., 13752., 14388., 14520., 14652., 14784., 17277.,
      17466., 17655., 17844., 18654., 18852., 19050., 19248., 20103., 20310.,
      20517., 20724., 21624., 21840., 22056., 22272., 19617., 19842., 20067.,
      20292., 21138., 21372., 21606., 21840., 22731., 22974., 23217., 23460.,
      24396., 24648., 24900., 25152., 12402., 12564., 12726., 12888., 13416.,
      13584., 13752., 13920., 14478., 14652., 14826., 15000., 15588., 15768.,
      15948., 16128., 18498., 18708., 18918., 19128., 19800., 20016., 20232.,
      20448., 21150., 21372., 21594., 21816., 22548., 22776., 23004., 23232.,
      26637., 26970., 27303., 27636., 28590., 28932., 29274., 29616., 30615.,
      30966., 31317., 31668., 32712., 33072., 33432., 33792., 28977., 29346.,
      29715., 30084., 31074., 31452., 31830., 32208., 33243., 33630., 34017.,
      34404., 35484., 35880., 36276., 36672., 17874., 18132., 18390., 18648.,
      19272., 19536., 19800., 20064., 20718., 20988., 21258., 21528., 22212.,
      22488., 22764., 23040., 25506., 25812., 26118., 26424., 27192., 27504.,
      27816., 28128., 28926., 29244., 29562., 29880., 30708., 31032., 31356.,
      31680., 35997., 36474., 36951., 37428., 38526., 39012., 39498., 39984.,
      41127., 41622., 42117., 42612., 43800., 44304., 44808., 45312., 38337.,
      38850., 39363., 39876., 41010., 41532., 42054., 42576., 43755., 44286.,
      44817., 45348., 46572., 47112., 47652., 48192., 23346., 23700., 24054.,
      24408., 25128., 25488., 25848., 26208., 26958., 27324., 27690., 28056.,
      28836., 29208., 29580., 29952., 12396., 12632., 12868., 13104., 13552.,
      13792., 14032., 14272., 14740., 14984., 15228., 15472., 15960., 16208.,
      16456., 16704., 16414., 16780., 17146., 17512., 18148., 18520., 18892.,
      19264., 19930., 20308., 20686., 21064., 21760., 22144., 22528., 22912.,
      17398., 17788., 18178., 18568., 19228., 19624., 20020., 20416., 21106.,
      21508., 21910., 22312., 23032., 23440., 23848., 24256., 9676.,  9944.,
      10212., 10480., 10896., 11168., 11440., 11712., 12148., 12424., 12700.,
      12976., 13432., 13712., 13992., 14272.};
  const std::array<int, 4> in_shape = {{1, 5, 4, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x5x4x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      17277., 17466., 17655., 17844., 18654., 18852., 19050., 19248., 20103.,
      20310., 20517., 20724., 21624., 21840., 22056., 22272., 19617., 19842.,
      20067., 20292., 21138., 21372., 21606., 21840., 22731., 22974., 23217.,
      23460., 24396., 24648., 24900., 25152., 26637., 26970., 27303., 27636.,
      28590., 28932., 29274., 29616., 30615., 30966., 31317., 31668., 32712.,
      33072., 33432., 33792., 28977., 29346., 29715., 30084., 31074., 31452.,
      31830., 32208., 33243., 33630., 34017., 34404., 35484., 35880., 36276.,
      36672., 35997., 36474., 36951., 37428., 38526., 39012., 39498., 39984.,
      41127., 41622., 42117., 42612., 43800., 44304., 44808., 45312., 38337.,
      38850., 39363., 39876., 41010., 41532., 42054., 42576., 43755., 44286.,
      44817., 45348., 46572., 47112., 47652., 48192.};
  const std::array<int, 4> in_shape = {{1, 5, 4, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x5x5x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      128., 202., 241., 280., 184., 276., 411., 456., 501.,
      318., 441., 636., 681., 726., 453., 606., 861., 906.,
      951., 588., 320., 436., 457., 478., 280.};
  const std::array<int, 4> in_shape = {{1, 5, 5, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x5x5x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {411., 456., 501., 636., 681.,
                                         726., 861., 906., 951.};
  const std::array<int, 4> in_shape = {{1, 5, 5, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x5x5x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      240.,  256.,  377.,  404.,  449.,  482.,  521.,  560.,  340.,  368.,
      513.,  552.,  759.,  822.,  840.,  912.,  921.,  1002., 579.,  636.,
      813.,  882.,  1164., 1272., 1245., 1362., 1326., 1452., 819.,  906.,
      1113., 1212., 1569., 1722., 1650., 1812., 1731., 1902., 1059., 1176.,
      564.,  640.,  755.,  872.,  791.,  914.,  827.,  956.,  472.,  560.};
  const std::array<int, 4> in_shape = {{1, 5, 5, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x5x5x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      759.,  822.,  840.,  912.,  921.,  1002., 1164., 1272., 1245.,
      1362., 1326., 1452., 1569., 1722., 1650., 1812., 1731., 1902.};
  const std::array<int, 4> in_shape = {{1, 5, 5, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x5x5x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      464.,  480.,  496.,  512.,  727.,  754.,  781.,  808.,  865.,  898.,
      931.,  964.,  1003., 1042., 1081., 1120., 652.,  680.,  708.,  736.,
      987.,  1026., 1065., 1104., 1455., 1518., 1581., 1644., 1608., 1680.,
      1752., 1824., 1761., 1842., 1923., 2004., 1101., 1158., 1215., 1272.,
      1557., 1626., 1695., 1764., 2220., 2328., 2436., 2544., 2373., 2490.,
      2607., 2724., 2526., 2652., 2778., 2904., 1551., 1638., 1725., 1812.,
      2127., 2226., 2325., 2424., 2985., 3138., 3291., 3444., 3138., 3300.,
      3462., 3624., 3291., 3462., 3633., 3804., 2001., 2118., 2235., 2352.,
      1052., 1128., 1204., 1280., 1393., 1510., 1627., 1744., 1459., 1582.,
      1705., 1828., 1525., 1654., 1783., 1912., 856.,  944.,  1032., 1120.};
  const std::array<int, 4> in_shape = {{1, 5, 5, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x5x5x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1455., 1518., 1581., 1644., 1608., 1680., 1752., 1824., 1761.,
      1842., 1923., 2004., 2220., 2328., 2436., 2544., 2373., 2490.,
      2607., 2724., 2526., 2652., 2778., 2904., 2985., 3138., 3291.,
      3444., 3138., 3300., 3462., 3624., 3291., 3462., 3633., 3804.};
  const std::array<int, 4> in_shape = {{1, 5, 5, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x5x5x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      428.,  512.,  682.,  808.,  826.,  964.,  970.,  1120., 636.,  736.,
      966.,  1104., 1437., 1644., 1599., 1824., 1761., 2004., 1110., 1272.,
      1566., 1764., 2247., 2544., 2409., 2724., 2571., 2904., 1590., 1812.,
      2166., 2424., 3057., 3444., 3219., 3624., 3381., 3804., 2070., 2352.,
      1100., 1280., 1474., 1744., 1546., 1828., 1618., 1912., 924.,  1120.};
  const std::array<int, 4> in_shape = {{1, 5, 5, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x5x5x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1437., 1644., 1599., 1824., 1761., 2004., 2247., 2544., 2409.,
      2724., 2571., 2904., 3057., 3444., 3219., 3624., 3381., 3804.};
  const std::array<int, 4> in_shape = {{1, 5, 5, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x5x5x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      828.,  856.,  992.,  1024., 1316., 1364., 1562., 1616., 1592., 1652.,
      1862., 1928., 1868., 1940., 2162., 2240., 1220., 1272., 1416., 1472.,
      1860., 1932., 2130., 2208., 2757., 2874., 3162., 3288., 3063., 3198.,
      3504., 3648., 3369., 3522., 3846., 4008., 2112., 2220., 2430., 2544.,
      3000., 3132., 3390., 3528., 4287., 4494., 4872., 5088., 4593., 4818.,
      5214., 5448., 4899., 5142., 5556., 5808., 3012., 3180., 3450., 3624.,
      4140., 4332., 4650., 4848., 5817., 6114., 6582., 6888., 6123., 6438.,
      6924., 7248., 6429., 6762., 7266., 7608., 3912., 4140., 4470., 4704.,
      2052., 2200., 2408., 2560., 2720., 2948., 3254., 3488., 2852., 3092.,
      3410., 3656., 2984., 3236., 3566., 3824., 1676., 1848., 2064., 2240.};
  const std::array<int, 4> in_shape = {{1, 5, 5, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x5x5x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2757., 2874., 3162., 3288., 3063., 3198., 3504., 3648., 3369.,
      3522., 3846., 4008., 4287., 4494., 4872., 5088., 4593., 4818.,
      5214., 5448., 4899., 5142., 5556., 5808., 5817., 6114., 6582.,
      6888., 6123., 6438., 6924., 7248., 6429., 6762., 7266., 7608.};
  const std::array<int, 4> in_shape = {{1, 5, 5, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x5x5x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1628.,  1656.,  1684.,  1712.,  1952.,  1984.,  2016.,  2048.,  2584.,
      2632.,  2680.,  2728.,  3070.,  3124.,  3178.,  3232.,  3124.,  3184.,
      3244.,  3304.,  3658.,  3724.,  3790.,  3856.,  3664.,  3736.,  3808.,
      3880.,  4246.,  4324.,  4402.,  4480.,  2388.,  2440.,  2492.,  2544.,
      2776.,  2832.,  2888.,  2944.,  3648.,  3720.,  3792.,  3864.,  4182.,
      4260.,  4338.,  4416.,  5397.,  5514.,  5631.,  5748.,  6198.,  6324.,
      6450.,  6576.,  5991.,  6126.,  6261.,  6396.,  6864.,  7008.,  7152.,
      7296.,  6585.,  6738.,  6891.,  7044.,  7530.,  7692.,  7854.,  8016.,
      4116.,  4224.,  4332.,  4440.,  4746.,  4860.,  4974.,  5088.,  5868.,
      6000.,  6132.,  6264.,  6642.,  6780.,  6918.,  7056.,  8367.,  8574.,
      8781.,  8988.,  9528.,  9744.,  9960.,  10176., 8961.,  9186.,  9411.,
      9636.,  10194., 10428., 10662., 10896., 9555.,  9798.,  10041., 10284.,
      10860., 11112., 11364., 11616., 5856.,  6024.,  6192.,  6360.,  6726.,
      6900.,  7074.,  7248.,  8088.,  8280.,  8472.,  8664.,  9102.,  9300.,
      9498.,  9696.,  11337., 11634., 11931., 12228., 12858., 13164., 13470.,
      13776., 11931., 12246., 12561., 12876., 13524., 13848., 14172., 14496.,
      12525., 12858., 13191., 13524., 14190., 14532., 14874., 15216., 7596.,
      7824.,  8052.,  8280.,  8706.,  8940.,  9174.,  9408.,  3956.,  4104.,
      4252.,  4400.,  4664.,  4816.,  4968.,  5120.,  5212.,  5440.,  5668.,
      5896.,  6274.,  6508.,  6742.,  6976.,  5464.,  5704.,  5944.,  6184.,
      6574.,  6820.,  7066.,  7312.,  5716.,  5968.,  6220.,  6472.,  6874.,
      7132.,  7390.,  7648.,  3180.,  3352.,  3524.,  3696.,  3952.,  4128.,
      4304.,  4480.};
  const std::array<int, 4> in_shape = {{1, 5, 5, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x5x5x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5397.,  5514.,  5631.,  5748.,  6198.,  6324.,  6450.,  6576.,  5991.,
      6126.,  6261.,  6396.,  6864.,  7008.,  7152.,  7296.,  6585.,  6738.,
      6891.,  7044.,  7530.,  7692.,  7854.,  8016.,  8367.,  8574.,  8781.,
      8988.,  9528.,  9744.,  9960.,  10176., 8961.,  9186.,  9411.,  9636.,
      10194., 10428., 10662., 10896., 9555.,  9798.,  10041., 10284., 10860.,
      11112., 11364., 11616., 11337., 11634., 11931., 12228., 12858., 13164.,
      13470., 13776., 11931., 12246., 12561., 12876., 13524., 13848., 14172.,
      14496., 12525., 12858., 13191., 13524., 14190., 14532., 14874., 15216.};
  const std::array<int, 4> in_shape = {{1, 5, 5, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x5x5x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1556.,  1712.,  1876.,  2048.,  2494.,  2728.,  2974.,  3232.,  3046.,
      3304.,  3574.,  3856.,  3598.,  3880.,  4174.,  4480.,  2356.,  2544.,
      2740.,  2944.,  3606.,  3864.,  4134.,  4416.,  5361.,  5748.,  6153.,
      6576.,  5973.,  6396.,  6837.,  7296.,  6585.,  7044.,  7521.,  8016.,
      4134.,  4440.,  4758.,  5088.,  5886.,  6264.,  6654.,  7056.,  8421.,
      8988.,  9573.,  10176., 9033.,  9636.,  10257., 10896., 9645.,  10284.,
      10941., 11616., 5934.,  6360.,  6798.,  7248.,  8166.,  8664.,  9174.,
      9696.,  11481., 12228., 12993., 13776., 12093., 12876., 13677., 14496.,
      12705., 13524., 14361., 15216., 7734.,  8280.,  8838.,  9408.,  4052.,
      4400.,  4756.,  5120.,  5374.,  5896.,  6430.,  6976.,  5638.,  6184.,
      6742.,  7312.,  5902.,  6472.,  7054.,  7648.,  3316.,  3696.,  4084.,
      4480.};
  const std::array<int, 4> in_shape = {{1, 5, 5, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x5x5x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5361.,  5748.,  6153.,  6576.,  5973.,  6396.,  6837.,  7296.,  6585.,
      7044.,  7521.,  8016.,  8421.,  8988.,  9573.,  10176., 9033.,  9636.,
      10257., 10896., 9645.,  10284., 10941., 11616., 11481., 12228., 12993.,
      13776., 12093., 12876., 13677., 14496., 12705., 13524., 14361., 15216.};
  const std::array<int, 4> in_shape = {{1, 5, 5, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x5x5x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3060.,  3112.,  3368.,  3424.,  3692.,  3752.,  4032.,  4096.,  4898.,
      4988.,  5360.,  5456.,  5846.,  5948.,  6356.,  6464.,  5978.,  6092.,
      6488.,  6608.,  7022.,  7148.,  7580.,  7712.,  7058.,  7196.,  7616.,
      7760.,  8198.,  8348.,  8804.,  8960.,  4612.,  4712.,  4984.,  5088.,
      5372.,  5480.,  5776.,  5888.,  7074.,  7212.,  7584.,  7728.,  8118.,
      8268.,  8676.,  8832.,  10497., 10722., 11262., 11496., 12063., 12306.,
      12900., 13152., 11685., 11946., 12522., 12792., 13395., 13674., 14304.,
      14592., 12873., 13170., 13782., 14088., 14727., 15042., 15708., 16032.,
      8058.,  8268.,  8664.,  8880.,  9294.,  9516.,  9948.,  10176., 11514.,
      11772., 12264., 12528., 13038., 13308., 13836., 14112., 16437., 16842.,
      17562., 17976., 18723., 19146., 19920., 20352., 17625., 18066., 18822.,
      19272., 20055., 20514., 21324., 21792., 18813., 19290., 20082., 20568.,
      21387., 21882., 22728., 23232., 11538., 11868., 12384., 12720., 13254.,
      13596., 14148., 14496., 15954., 16332., 16944., 17328., 17958., 18348.,
      18996., 19392., 22377., 22962., 23862., 24456., 25383., 25986., 26940.,
      27552., 23565., 24186., 25122., 25752., 26715., 27354., 28344., 28992.,
      24753., 25410., 26382., 27048., 28047., 28722., 29748., 30432., 15018.,
      15468., 16104., 16560., 17214., 17676., 18348., 18816., 7812.,  8104.,
      8504.,  8800.,  9212.,  9512.,  9936.,  10240., 10298., 10748., 11336.,
      11792., 12398., 12860., 13484., 13952., 10802., 11276., 11888., 12368.,
      12998., 13484., 14132., 14624., 11306., 11804., 12440., 12944., 13598.,
      14108., 14780., 15296., 6292.,  6632.,  7048.,  7392.,  7820.,  8168.,
      8608.,  8960.};
  const std::array<int, 4> in_shape = {{1, 5, 5, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x5x5x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      10497., 10722., 11262., 11496., 12063., 12306., 12900., 13152., 11685.,
      11946., 12522., 12792., 13395., 13674., 14304., 14592., 12873., 13170.,
      13782., 14088., 14727., 15042., 15708., 16032., 16437., 16842., 17562.,
      17976., 18723., 19146., 19920., 20352., 17625., 18066., 18822., 19272.,
      20055., 20514., 21324., 21792., 18813., 19290., 20082., 20568., 21387.,
      21882., 22728., 23232., 22377., 22962., 23862., 24456., 25383., 25986.,
      26940., 27552., 23565., 24186., 25122., 25752., 26715., 27354., 28344.,
      28992., 24753., 25410., 26382., 27048., 28047., 28722., 29748., 30432.};
  const std::array<int, 4> in_shape = {{1, 5, 5, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x5x5x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6068.,  6120.,  6172.,  6224.,  6680.,  6736.,  6792.,  6848.,  7324.,
      7384.,  7444.,  7504.,  8000.,  8064.,  8128.,  8192.,  9706.,  9796.,
      9886.,  9976.,  10624., 10720., 10816., 10912., 11590., 11692., 11794.,
      11896., 12604., 12712., 12820., 12928., 11842., 11956., 12070., 12184.,
      12856., 12976., 13096., 13216., 13918., 14044., 14170., 14296., 15028.,
      15160., 15292., 15424., 13978., 14116., 14254., 14392., 15088., 15232.,
      15376., 15520., 16246., 16396., 16546., 16696., 17452., 17608., 17764.,
      17920., 9124.,  9224.,  9324.,  9424.,  9864.,  9968.,  10072., 10176.,
      10636., 10744., 10852., 10960., 11440., 11552., 11664., 11776., 14010.,
      14148., 14286., 14424., 15024., 15168., 15312., 15456., 16086., 16236.,
      16386., 16536., 17196., 17352., 17508., 17664., 20769., 20994., 21219.,
      21444., 22290., 22524., 22758., 22992., 23883., 24126., 24369., 24612.,
      25548., 25800., 26052., 26304., 23109., 23370., 23631., 23892., 24774.,
      25044., 25314., 25584., 26511., 26790., 27069., 27348., 28320., 28608.,
      28896., 29184., 25449., 25746., 26043., 26340., 27258., 27564., 27870.,
      28176., 29139., 29454., 29769., 30084., 31092., 31416., 31740., 32064.,
      15906., 16116., 16326., 16536., 17112., 17328., 17544., 17760., 18366.,
      18588., 18810., 19032., 19668., 19896., 20124., 20352., 22770., 23028.,
      23286., 23544., 24264., 24528., 24792., 25056., 25806., 26076., 26346.,
      26616., 27396., 27672., 27948., 28224., 32469., 32874., 33279., 33684.,
      34710., 35124., 35538., 35952., 37023., 37446., 37869., 38292., 39408.,
      39840., 40272., 40704., 34809., 35250., 35691., 36132., 37194., 37644.,
      38094., 38544., 39651., 40110., 40569., 41028., 42180., 42648., 43116.,
      43584., 37149., 37626., 38103., 38580., 39678., 40164., 40650., 41136.,
      42279., 42774., 43269., 43764., 44952., 45456., 45960., 46464., 22746.,
      23076., 23406., 23736., 24432., 24768., 25104., 25440., 26166., 26508.,
      26850., 27192., 27948., 28296., 28644., 28992., 31530., 31908., 32286.,
      32664., 33504., 33888., 34272., 34656., 35526., 35916., 36306., 36696.,
      37596., 37992., 38388., 38784., 44169., 44754., 45339., 45924., 47130.,
      47724., 48318., 48912., 50163., 50766., 51369., 51972., 53268., 53880.,
      54492., 55104., 46509., 47130., 47751., 48372., 49614., 50244., 50874.,
      51504., 52791., 53430., 54069., 54708., 56040., 56688., 57336., 57984.,
      48849., 49506., 50163., 50820., 52098., 52764., 53430., 54096., 55419.,
      56094., 56769., 57444., 58812., 59496., 60180., 60864., 29586., 30036.,
      30486., 30936., 31752., 32208., 32664., 33120., 33966., 34428., 34890.,
      35352., 36228., 36696., 37164., 37632., 15332., 15624., 15916., 16208.,
      16712., 17008., 17304., 17600., 18124., 18424., 18724., 19024., 19568.,
      19872., 20176., 20480., 20146., 20596., 21046., 21496., 22216., 22672.,
      23128., 23584., 24334., 24796., 25258., 25720., 26500., 26968., 27436.,
      27904., 21130., 21604., 22078., 22552., 23296., 23776., 24256., 24736.,
      25510., 25996., 26482., 26968., 27772., 28264., 28756., 29248., 22114.,
      22612., 23110., 23608., 24376., 24880., 25384., 25888., 26686., 27196.,
      27706., 28216., 29044., 29560., 30076., 30592., 12244., 12584., 12924.,
      13264., 13752., 14096., 14440., 14784., 15292., 15640., 15988., 16336.,
      16864., 17216., 17568., 17920.};
  const std::array<int, 4> in_shape = {{1, 5, 5, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x5x5x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      20769., 20994., 21219., 21444., 22290., 22524., 22758., 22992., 23883.,
      24126., 24369., 24612., 25548., 25800., 26052., 26304., 23109., 23370.,
      23631., 23892., 24774., 25044., 25314., 25584., 26511., 26790., 27069.,
      27348., 28320., 28608., 28896., 29184., 25449., 25746., 26043., 26340.,
      27258., 27564., 27870., 28176., 29139., 29454., 29769., 30084., 31092.,
      31416., 31740., 32064., 32469., 32874., 33279., 33684., 34710., 35124.,
      35538., 35952., 37023., 37446., 37869., 38292., 39408., 39840., 40272.,
      40704., 34809., 35250., 35691., 36132., 37194., 37644., 38094., 38544.,
      39651., 40110., 40569., 41028., 42180., 42648., 43116., 43584., 37149.,
      37626., 38103., 38580., 39678., 40164., 40650., 41136., 42279., 42774.,
      43269., 43764., 44952., 45456., 45960., 46464., 44169., 44754., 45339.,
      45924., 47130., 47724., 48318., 48912., 50163., 50766., 51369., 51972.,
      53268., 53880., 54492., 55104., 46509., 47130., 47751., 48372., 49614.,
      50244., 50874., 51504., 52791., 53430., 54069., 54708., 56040., 56688.,
      57336., 57984., 48849., 49506., 50163., 50820., 52098., 52764., 53430.,
      54096., 55419., 56094., 56769., 57444., 58812., 59496., 60180., 60864.};
  const std::array<int, 4> in_shape = {{1, 5, 5, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x5x6x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      145.,  226.,  265.,  304., 343., 223., 321., 474., 519., 564.,
      609.,  384.,  519.,  744., 789., 834., 879., 546., 717., 1014.,
      1059., 1104., 1149., 708., 379., 514., 535., 556., 577., 337.};
  const std::array<int, 4> in_shape = {{1, 5, 6, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x5x6x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {474.,  519.,  564.,  609.,
                                         744.,  789.,  834.,  879.,
                                         1014., 1059., 1104., 1149.};
  const std::array<int, 4> in_shape = {{1, 5, 6, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x5x6x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      272.,  290.,  422.,  452.,  494.,  530.,  566.,  608.,  638.,  686.,
      412.,  446.,  597.,  642.,  876.,  948.,  957.,  1038., 1038., 1128.,
      1119., 1218., 699.,  768.,  957.,  1038., 1362., 1488., 1443., 1578.,
      1524., 1668., 1605., 1758., 987.,  1092., 1317., 1434., 1848., 2028.,
      1929., 2118., 2010., 2208., 2091., 2298., 1275., 1416., 668.,  758.,
      890.,  1028., 926.,  1070., 962.,  1112., 998.,  1154., 568.,  674.};
  const std::array<int, 4> in_shape = {{1, 5, 6, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x5x6x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      876.,  948.,  957.,  1038., 1038., 1128., 1119., 1218.,
      1362., 1488., 1443., 1578., 1524., 1668., 1605., 1758.,
      1848., 2028., 1929., 2118., 2010., 2208., 2091., 2298.};
  const std::array<int, 4> in_shape = {{1, 5, 6, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x5x6x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      526.,  544.,  562.,  580.,  814.,  844.,  874.,  904.,  952.,  988.,
      1024., 1060., 1090., 1132., 1174., 1216., 1228., 1276., 1324., 1372.,
      790.,  824.,  858.,  892.,  1149., 1194., 1239., 1284., 1680., 1752.,
      1824., 1896., 1833., 1914., 1995., 2076., 1986., 2076., 2166., 2256.,
      2139., 2238., 2337., 2436., 1329., 1398., 1467., 1536., 1833., 1914.,
      1995., 2076., 2598., 2724., 2850., 2976., 2751., 2886., 3021., 3156.,
      2904., 3048., 3192., 3336., 3057., 3210., 3363., 3516., 1869., 1974.,
      2079., 2184., 2517., 2634., 2751., 2868., 3516., 3696., 3876., 4056.,
      3669., 3858., 4047., 4236., 3822., 4020., 4218., 4416., 3975., 4182.,
      4389., 4596., 2409., 2550., 2691., 2832., 1246., 1336., 1426., 1516.,
      1642., 1780., 1918., 2056., 1708., 1852., 1996., 2140., 1774., 1924.,
      2074., 2224., 1840., 1996., 2152., 2308., 1030., 1136., 1242., 1348.};
  const std::array<int, 4> in_shape = {{1, 5, 6, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x5x6x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1680., 1752., 1824., 1896., 1833., 1914., 1995., 2076., 1986., 2076.,
      2166., 2256., 2139., 2238., 2337., 2436., 2598., 2724., 2850., 2976.,
      2751., 2886., 3021., 3156., 2904., 3048., 3192., 3336., 3057., 3210.,
      3363., 3516., 3516., 3696., 3876., 4056., 3669., 3858., 4047., 4236.,
      3822., 4020., 4218., 4416., 3975., 4182., 4389., 4596.};
  const std::array<int, 4> in_shape = {{1, 5, 6, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x5x6x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      492.,  580.,  772.,  904.,  916.,  1060., 1060., 1216., 1204., 1372.,
      780.,  892.,  1134., 1284., 1671., 1896., 1833., 2076., 1995., 2256.,
      2157., 2436., 1350., 1536., 1854., 2076., 2643., 2976., 2805., 3156.,
      2967., 3336., 3129., 3516., 1926., 2184., 2574., 2868., 3615., 4056.,
      3777., 4236., 3939., 4416., 4101., 4596., 2502., 2832., 1308., 1516.,
      1744., 2056., 1816., 2140., 1888., 2224., 1960., 2308., 1116., 1348.};
  const std::array<int, 4> in_shape = {{1, 5, 6, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x5x6x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1671., 1896., 1833., 2076., 1995., 2256., 2157., 2436.,
      2643., 2976., 2805., 3156., 2967., 3336., 3129., 3516.,
      3615., 4056., 3777., 4236., 3939., 4416., 4101., 4596.};
  const std::array<int, 4> in_shape = {{1, 5, 6, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x5x6x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      952.,  984.,  1124., 1160., 1490., 1544., 1748., 1808., 1766., 1832.,
      2048., 2120., 2042., 2120., 2348., 2432., 2318., 2408., 2648., 2744.,
      1496., 1560., 1716., 1784., 2184., 2268., 2478., 2568., 3207., 3342.,
      3648., 3792., 3513., 3666., 3990., 4152., 3819., 3990., 4332., 4512.,
      4125., 4314., 4674., 4872., 2568., 2700., 2934., 3072., 3552., 3708.,
      3990., 4152., 5043., 5286., 5700., 5952., 5349., 5610., 6042., 6312.,
      5655., 5934., 6384., 6672., 5961., 6258., 6726., 7032., 3648., 3852.,
      4158., 4368., 4920., 5148., 5502., 5736., 6879., 7230., 7752., 8112.,
      7185., 7554., 8094., 8472., 7491., 7878., 8436., 8832., 7797., 8202.,
      8778., 9192., 4728., 5004., 5382., 5664., 2440., 2616., 2852., 3032.,
      3218., 3488., 3836., 4112., 3350., 3632., 3992., 4280., 3482., 3776.,
      4148., 4448., 3614., 3920., 4304., 4616., 2024., 2232., 2484., 2696.};
  const std::array<int, 4> in_shape = {{1, 5, 6, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x5x6x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3207., 3342., 3648., 3792., 3513., 3666., 3990., 4152., 3819., 3990.,
      4332., 4512., 4125., 4314., 4674., 4872., 5043., 5286., 5700., 5952.,
      5349., 5610., 6042., 6312., 5655., 5934., 6384., 6672., 5961., 6258.,
      6726., 7032., 6879., 7230., 7752., 8112., 7185., 7554., 8094., 8472.,
      7491., 7878., 8436., 8832., 7797., 8202., 8778., 9192.};
  const std::array<int, 4> in_shape = {{1, 5, 6, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x5x6x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1872.,  1904.,  1936.,  1968.,  2212.,  2248.,  2284.,  2320.,  2926.,
      2980.,  3034.,  3088.,  3436.,  3496.,  3556.,  3616.,  3466.,  3532.,
      3598.,  3664.,  4024.,  4096.,  4168.,  4240.,  4006.,  4084.,  4162.,
      4240.,  4612.,  4696.,  4780.,  4864.,  4546.,  4636.,  4726.,  4816.,
      5200.,  5296.,  5392.,  5488.,  2928.,  2992.,  3056.,  3120.,  3364.,
      3432.,  3500.,  3568.,  4284.,  4368.,  4452.,  4536.,  4866.,  4956.,
      5046.,  5136.,  6279.,  6414.,  6549.,  6684.,  7152.,  7296.,  7440.,
      7584.,  6873.,  7026.,  7179.,  7332.,  7818.,  7980.,  8142.,  8304.,
      7467.,  7638.,  7809.,  7980.,  8484.,  8664.,  8844.,  9024.,  8061.,
      8250.,  8439.,  8628.,  9150.,  9348.,  9546.,  9744.,  5004.,  5136.,
      5268.,  5400.,  5730.,  5868.,  6006.,  6144.,  6948.,  7104.,  7260.,
      7416.,  7818.,  7980.,  8142.,  8304.,  9843.,  10086., 10329., 10572.,
      11148., 11400., 11652., 11904., 10437., 10698., 10959., 11220., 11814.,
      12084., 12354., 12624., 11031., 11310., 11589., 11868., 12480., 12768.,
      13056., 13344., 11625., 11922., 12219., 12516., 13146., 13452., 13758.,
      14064., 7092.,  7296.,  7500.,  7704.,  8106.,  8316.,  8526.,  8736.,
      9612.,  9840.,  10068., 10296., 10770., 11004., 11238., 11472., 13407.,
      13758., 14109., 14460., 15144., 15504., 15864., 16224., 14001., 14370.,
      14739., 15108., 15810., 16188., 16566., 16944., 14595., 14982., 15369.,
      15756., 16476., 16872., 17268., 17664., 15189., 15594., 15999., 16404.,
      17142., 17556., 17970., 18384., 9180.,  9456.,  9732.,  10008., 10482.,
      10764., 11046., 11328., 4704.,  4880.,  5056.,  5232.,  5524.,  5704.,
      5884.,  6064.,  6166.,  6436.,  6706.,  6976.,  7396.,  7672.,  7948.,
      8224.,  6418.,  6700.,  6982.,  7264.,  7696.,  7984.,  8272.,  8560.,
      6670.,  6964.,  7258.,  7552.,  7996.,  8296.,  8596.,  8896.,  6922.,
      7228.,  7534.,  7840.,  8296.,  8608.,  8920.,  9232.,  3840.,  4048.,
      4256.,  4464.,  4756.,  4968.,  5180.,  5392.};
  const std::array<int, 4> in_shape = {{1, 5, 6, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x5x6x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6279.,  6414.,  6549.,  6684.,  7152.,  7296.,  7440.,  7584.,  6873.,
      7026.,  7179.,  7332.,  7818.,  7980.,  8142.,  8304.,  7467.,  7638.,
      7809.,  7980.,  8484.,  8664.,  8844.,  9024.,  8061.,  8250.,  8439.,
      8628.,  9150.,  9348.,  9546.,  9744.,  9843.,  10086., 10329., 10572.,
      11148., 11400., 11652., 11904., 10437., 10698., 10959., 11220., 11814.,
      12084., 12354., 12624., 11031., 11310., 11589., 11868., 12480., 12768.,
      13056., 13344., 11625., 11922., 12219., 12516., 13146., 13452., 13758.,
      14064., 13407., 13758., 14109., 14460., 15144., 15504., 15864., 16224.,
      14001., 14370., 14739., 15108., 15810., 16188., 16566., 16944., 14595.,
      14982., 15369., 15756., 16476., 16872., 17268., 17664., 15189., 15594.,
      15999., 16404., 17142., 17556., 17970., 18384.};
  const std::array<int, 4> in_shape = {{1, 5, 6, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x5x6x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1804.,  1968.,  2140.,  2320.,  2842.,  3088.,  3346.,  3616.,  3394.,
      3664.,  3946.,  4240.,  3946.,  4240.,  4546.,  4864.,  4498.,  4816.,
      5146.,  5488.,  2908.,  3120.,  3340.,  3568.,  4254.,  4536.,  4830.,
      5136.,  6261.,  6684.,  7125.,  7584.,  6873.,  7332.,  7809.,  8304.,
      7485.,  7980.,  8493.,  9024.,  8097.,  8628.,  9177.,  9744.,  5046.,
      5400.,  5766.,  6144.,  6990.,  7416.,  7854.,  8304.,  9933.,  10572.,
      11229., 11904., 10545., 11220., 11913., 12624., 11157., 11868., 12597.,
      13344., 11769., 12516., 13281., 14064., 7206.,  7704.,  8214.,  8736.,
      9726.,  10296., 10878., 11472., 13605., 14460., 15333., 16224., 14217.,
      15108., 16017., 16944., 14829., 15756., 16701., 17664., 15441., 16404.,
      17385., 18384., 9366.,  10008., 10662., 11328., 4828.,  5232.,  5644.,
      6064.,  6370.,  6976.,  7594.,  8224.,  6634.,  7264.,  7906.,  8560.,
      6898.,  7552.,  8218.,  8896.,  7162.,  7840.,  8530.,  9232.,  4012.,
      4464.,  4924.,  5392.};
  const std::array<int, 4> in_shape = {{1, 5, 6, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x5x6x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6261.,  6684.,  7125.,  7584.,  6873.,  7332.,  7809.,  8304.,
      7485.,  7980.,  8493.,  9024.,  8097.,  8628.,  9177.,  9744.,
      9933.,  10572., 11229., 11904., 10545., 11220., 11913., 12624.,
      11157., 11868., 12597., 13344., 11769., 12516., 13281., 14064.,
      13605., 14460., 15333., 16224., 14217., 15108., 16017., 16944.,
      14829., 15756., 16701., 17664., 15441., 16404., 17385., 18384.};
  const std::array<int, 4> in_shape = {{1, 5, 6, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x5x6x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3548.,  3608.,  3872.,  3936.,  4212.,  4280.,  4568.,  4640.,  5582.,
      5684.,  6068.,  6176.,  6578.,  6692.,  7112.,  7232.,  6662.,  6788.,
      7196.,  7328.,  7754.,  7892.,  8336.,  8480.,  7742.,  7892.,  8324.,
      8480.,  8930.,  9092.,  9560.,  9728.,  8822.,  8996.,  9452.,  9632.,
      10106., 10292., 10784., 10976., 5692.,  5816.,  6112.,  6240.,  6548.,
      6680.,  7000.,  7136.,  8346.,  8508.,  8904.,  9072.,  9486.,  9660.,
      10092., 10272., 12261., 12522., 13098., 13368., 13971., 14250., 14880.,
      15168., 13449., 13746., 14358., 14664., 15303., 15618., 16284., 16608.,
      14637., 14970., 15618., 15960., 16635., 16986., 17688., 18048., 15825.,
      16194., 16878., 17256., 17967., 18354., 19092., 19488., 9834.,  10092.,
      10536., 10800., 11262., 11532., 12012., 12288., 13674., 13980., 14520.,
      14832., 15390., 15708., 16284., 16608., 19389., 19866., 20658., 21144.,
      21963., 22458., 23304., 23808., 20577., 21090., 21918., 22440., 23295.,
      23826., 24708., 25248., 21765., 22314., 23178., 23736., 24627., 25194.,
      26112., 26688., 22953., 23538., 24438., 25032., 25959., 26562., 27516.,
      28128., 14010., 14412., 15000., 15408., 16014., 16428., 17052., 17472.,
      19002., 19452., 20136., 20592., 21294., 21756., 22476., 22944., 26517.,
      27210., 28218., 28920., 29955., 30666., 31728., 32448., 27705., 28434.,
      29478., 30216., 31287., 32034., 33132., 33888., 28893., 29658., 30738.,
      31512., 32619., 33402., 34536., 35328., 30081., 30882., 31998., 32808.,
      33951., 34770., 35940., 36768., 18186., 18732., 19464., 20016., 20766.,
      21324., 22092., 22656., 9308.,  9656.,  10112., 10464., 10932., 11288.,
      11768., 12128., 12206., 12740., 13412., 13952., 14642., 15188., 15896.,
      16448., 12710., 13268., 13964., 14528., 15242., 15812., 16544., 17120.,
      13214., 13796., 14516., 15104., 15842., 16436., 17192., 17792., 13718.,
      14324., 15068., 15680., 16442., 17060., 17840., 18464., 7612.,  8024.,
      8512.,  8928.,  9428.,  9848.,  10360., 10784.};
  const std::array<int, 4> in_shape = {{1, 5, 6, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x5x6x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      12261., 12522., 13098., 13368., 13971., 14250., 14880., 15168., 13449.,
      13746., 14358., 14664., 15303., 15618., 16284., 16608., 14637., 14970.,
      15618., 15960., 16635., 16986., 17688., 18048., 15825., 16194., 16878.,
      17256., 17967., 18354., 19092., 19488., 19389., 19866., 20658., 21144.,
      21963., 22458., 23304., 23808., 20577., 21090., 21918., 22440., 23295.,
      23826., 24708., 25248., 21765., 22314., 23178., 23736., 24627., 25194.,
      26112., 26688., 22953., 23538., 24438., 25032., 25959., 26562., 27516.,
      28128., 26517., 27210., 28218., 28920., 29955., 30666., 31728., 32448.,
      27705., 28434., 29478., 30216., 31287., 32034., 33132., 33888., 28893.,
      29658., 30738., 31512., 32619., 33402., 34536., 35328., 30081., 30882.,
      31998., 32808., 33951., 34770., 35940., 36768.};
  const std::array<int, 4> in_shape = {{1, 5, 6, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x5x6x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      7036.,  7096.,  7156.,  7216.,  7680.,  7744.,  7808.,  7872.,  8356.,
      8424.,  8492.,  8560.,  9064.,  9136.,  9208.,  9280.,  11062., 11164.,
      11266., 11368., 12028., 12136., 12244., 12352., 13042., 13156., 13270.,
      13384., 14104., 14224., 14344., 14464., 13198., 13324., 13450., 13576.,
      14260., 14392., 14524., 14656., 15370., 15508., 15646., 15784., 16528.,
      16672., 16816., 16960., 15334., 15484., 15634., 15784., 16492., 16648.,
      16804., 16960., 17698., 17860., 18022., 18184., 18952., 19120., 19288.,
      19456., 17470., 17644., 17818., 17992., 18724., 18904., 19084., 19264.,
      20026., 20212., 20398., 20584., 21376., 21568., 21760., 21952., 11260.,
      11384., 11508., 11632., 12096., 12224., 12352., 12480., 12964., 13096.,
      13228., 13360., 13864., 14000., 14136., 14272., 16530., 16692., 16854.,
      17016., 17640., 17808., 17976., 18144., 18798., 18972., 19146., 19320.,
      20004., 20184., 20364., 20544., 24261., 24522., 24783., 25044., 25926.,
      26196., 26466., 26736., 27663., 27942., 28221., 28500., 29472., 29760.,
      30048., 30336., 26601., 26898., 27195., 27492., 28410., 28716., 29022.,
      29328., 30291., 30606., 30921., 31236., 32244., 32568., 32892., 33216.,
      28941., 29274., 29607., 29940., 30894., 31236., 31578., 31920., 32919.,
      33270., 33621., 33972., 35016., 35376., 35736., 36096., 31281., 31650.,
      32019., 32388., 33378., 33756., 34134., 34512., 35547., 35934., 36321.,
      36708., 37788., 38184., 38580., 38976., 19410., 19668., 19926., 20184.,
      20808., 21072., 21336., 21600., 22254., 22524., 22794., 23064., 23748.,
      24024., 24300., 24576., 27042., 27348., 27654., 27960., 28728., 29040.,
      29352., 29664., 30462., 30780., 31098., 31416., 32244., 32568., 32892.,
      33216., 38301., 38778., 39255., 39732., 40830., 41316., 41802., 42288.,
      43431., 43926., 44421., 44916., 46104., 46608., 47112., 47616., 40641.,
      41154., 41667., 42180., 43314., 43836., 44358., 44880., 46059., 46590.,
      47121., 47652., 48876., 49416., 49956., 50496., 42981., 43530., 44079.,
      44628., 45798., 46356., 46914., 47472., 48687., 49254., 49821., 50388.,
      51648., 52224., 52800., 53376., 45321., 45906., 46491., 47076., 48282.,
      48876., 49470., 50064., 51315., 51918., 52521., 53124., 54420., 55032.,
      55644., 56256., 27618., 28020., 28422., 28824., 29592., 30000., 30408.,
      30816., 31614., 32028., 32442., 32856., 33684., 34104., 34524., 34944.,
      37554., 38004., 38454., 38904., 39816., 40272., 40728., 41184., 42126.,
      42588., 43050., 43512., 44484., 44952., 45420., 45888., 52341., 53034.,
      53727., 54420., 55734., 56436., 57138., 57840., 59199., 59910., 60621.,
      61332., 62736., 63456., 64176., 64896., 54681., 55410., 56139., 56868.,
      58218., 58956., 59694., 60432., 61827., 62574., 63321., 64068., 65508.,
      66264., 67020., 67776., 57021., 57786., 58551., 59316., 60702., 61476.,
      62250., 63024., 64455., 65238., 66021., 66804., 68280., 69072., 69864.,
      70656., 59361., 60162., 60963., 61764., 63186., 63996., 64806., 65616.,
      67083., 67902., 68721., 69540., 71052., 71880., 72708., 73536., 35826.,
      36372., 36918., 37464., 38376., 38928., 39480., 40032., 40974., 41532.,
      42090., 42648., 43620., 44184., 44748., 45312., 18268., 18616., 18964.,
      19312., 19872., 20224., 20576., 20928., 21508., 21864., 22220., 22576.,
      23176., 23536., 23896., 24256., 23878., 24412., 24946., 25480., 26284.,
      26824., 27364., 27904., 28738., 29284., 29830., 30376., 31240., 31792.,
      32344., 32896., 24862., 25420., 25978., 26536., 27364., 27928., 28492.,
      29056., 29914., 30484., 31054., 31624., 32512., 33088., 33664., 34240.,
      25846., 26428., 27010., 27592., 28444., 29032., 29620., 30208., 31090.,
      31684., 32278., 32872., 33784., 34384., 34984., 35584., 26830., 27436.,
      28042., 28648., 29524., 30136., 30748., 31360., 32266., 32884., 33502.,
      34120., 35056., 35680., 36304., 36928., 14812., 15224., 15636., 16048.,
      16608., 17024., 17440., 17856., 18436., 18856., 19276., 19696., 20296.,
      20720., 21144., 21568.};
  const std::array<int, 4> in_shape = {{1, 5, 6, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x5x6x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      24261., 24522., 24783., 25044., 25926., 26196., 26466., 26736., 27663.,
      27942., 28221., 28500., 29472., 29760., 30048., 30336., 26601., 26898.,
      27195., 27492., 28410., 28716., 29022., 29328., 30291., 30606., 30921.,
      31236., 32244., 32568., 32892., 33216., 28941., 29274., 29607., 29940.,
      30894., 31236., 31578., 31920., 32919., 33270., 33621., 33972., 35016.,
      35376., 35736., 36096., 31281., 31650., 32019., 32388., 33378., 33756.,
      34134., 34512., 35547., 35934., 36321., 36708., 37788., 38184., 38580.,
      38976., 38301., 38778., 39255., 39732., 40830., 41316., 41802., 42288.,
      43431., 43926., 44421., 44916., 46104., 46608., 47112., 47616., 40641.,
      41154., 41667., 42180., 43314., 43836., 44358., 44880., 46059., 46590.,
      47121., 47652., 48876., 49416., 49956., 50496., 42981., 43530., 44079.,
      44628., 45798., 46356., 46914., 47472., 48687., 49254., 49821., 50388.,
      51648., 52224., 52800., 53376., 45321., 45906., 46491., 47076., 48282.,
      48876., 49470., 50064., 51315., 51918., 52521., 53124., 54420., 55032.,
      55644., 56256., 52341., 53034., 53727., 54420., 55734., 56436., 57138.,
      57840., 59199., 59910., 60621., 61332., 62736., 63456., 64176., 64896.,
      54681., 55410., 56139., 56868., 58218., 58956., 59694., 60432., 61827.,
      62574., 63321., 64068., 65508., 66264., 67020., 67776., 57021., 57786.,
      58551., 59316., 60702., 61476., 62250., 63024., 64455., 65238., 66021.,
      66804., 68280., 69072., 69864., 70656., 59361., 60162., 60963., 61764.,
      63186., 63996., 64806., 65616., 67083., 67902., 68721., 69540., 71052.,
      71880., 72708., 73536.};
  const std::array<int, 4> in_shape = {{1, 5, 6, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x6x4x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      111., 178., 217., 145., 231., 348., 393., 252., 363., 528., 573., 360.,
      495., 708., 753., 468., 627., 888., 933., 576., 325., 442., 463., 271.};
  const std::array<int, 4> in_shape = {{1, 6, 4, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x6x4x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {348., 393., 528., 573.,
                                         708., 753., 888., 933.};
  const std::array<int, 4> in_shape = {{1, 6, 4, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x6x4x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      208.,  222.,  332.,  356.,  404.,  434.,  268.,  290.,  429.,  462.,
      642.,  696.,  723.,  786.,  459.,  504.,  669.,  726.,  966.,  1056.,
      1047., 1146., 651.,  720.,  909.,  990.,  1290., 1416., 1371., 1506.,
      843.,  936.,  1149., 1254., 1614., 1776., 1695., 1866., 1035., 1152.,
      572.,  650.,  764.,  884.,  800.,  926.,  456.,  542.};
  const std::array<int, 4> in_shape = {{1, 6, 4, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x6x4x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      642.,  696.,  723.,  786.,  966.,  1056., 1047., 1146.,
      1290., 1416., 1371., 1506., 1614., 1776., 1695., 1866.};
  const std::array<int, 4> in_shape = {{1, 6, 4, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x6x4x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      402.,  416.,  430.,  444.,  640.,  664.,  688.,  712.,  778.,  808.,
      838.,  868.,  514.,  536.,  558.,  580.,  825.,  858.,  891.,  924.,
      1230., 1284., 1338., 1392., 1383., 1446., 1509., 1572., 873.,  918.,
      963.,  1008., 1281., 1338., 1395., 1452., 1842., 1932., 2022., 2112.,
      1995., 2094., 2193., 2292., 1233., 1302., 1371., 1440., 1737., 1818.,
      1899., 1980., 2454., 2580., 2706., 2832., 2607., 2742., 2877., 3012.,
      1593., 1686., 1779., 1872., 2193., 2298., 2403., 2508., 3066., 3228.,
      3390., 3552., 3219., 3390., 3561., 3732., 1953., 2070., 2187., 2304.,
      1066., 1144., 1222., 1300., 1408., 1528., 1648., 1768., 1474., 1600.,
      1726., 1852., 826.,  912.,  998.,  1084.};
  const std::array<int, 4> in_shape = {{1, 6, 4, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x6x4x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1230., 1284., 1338., 1392., 1383., 1446., 1509., 1572.,
      1842., 1932., 2022., 2112., 1995., 2094., 2193., 2292.,
      2454., 2580., 2706., 2832., 2607., 2742., 2877., 3012.,
      3066., 3228., 3390., 3552., 3219., 3390., 3561., 3732.};
  const std::array<int, 4> in_shape = {{1, 6, 4, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x6x4x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      364.,  444.,  592.,  712.,  736.,  868.,  492.,  580.,  798.,  924.,
      1203., 1392., 1365., 1572., 870.,  1008., 1278., 1452., 1851., 2112.,
      2013., 2292., 1254., 1440., 1758., 1980., 2499., 2832., 2661., 3012.,
      1638., 1872., 2238., 2508., 3147., 3552., 3309., 3732., 2022., 2304.,
      1116., 1300., 1492., 1768., 1564., 1852., 892.,  1084.};
  const std::array<int, 4> in_shape = {{1, 6, 4, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x6x4x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1203., 1392., 1365., 1572., 1851., 2112., 2013., 2292.,
      2499., 2832., 2661., 3012., 3147., 3552., 3309., 3732.};
  const std::array<int, 4> in_shape = {{1, 6, 4, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x6x4x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      704.,  728.,  860.,  888.,  1142., 1184., 1376., 1424., 1418., 1472.,
      1676., 1736., 944.,  984.,  1116., 1160., 1536., 1596., 1782., 1848.,
      2307., 2406., 2676., 2784., 2613., 2730., 3018., 3144., 1656., 1740.,
      1926., 2016., 2448., 2556., 2790., 2904., 3531., 3702., 4044., 4224.,
      3837., 4026., 4386., 4584., 2376., 2508., 2742., 2880., 3360., 3516.,
      3798., 3960., 4755., 4998., 5412., 5664., 5061., 5322., 5754., 6024.,
      3096., 3276., 3558., 3744., 4272., 4476., 4806., 5016., 5979., 6294.,
      6780., 7104., 6285., 6618., 7122., 7464., 3816., 4044., 4374., 4608.,
      2080., 2232., 2444., 2600., 2750., 2984., 3296., 3536., 2882., 3128.,
      3452., 3704., 1616., 1784., 1996., 2168.};
  const std::array<int, 4> in_shape = {{1, 6, 4, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x6x4x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2307., 2406., 2676., 2784., 2613., 2730., 3018., 3144.,
      3531., 3702., 4044., 4224., 3837., 4026., 4386., 4584.,
      4755., 4998., 5412., 5664., 5061., 5322., 5754., 6024.,
      5979., 6294., 6780., 7104., 6285., 6618., 7122., 7464.};
  const std::array<int, 4> in_shape = {{1, 6, 4, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x6x4x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1384.,  1408.,  1432.,  1456.,  1692.,  1720.,  1748.,  1776.,  2242.,
      2284.,  2326.,  2368.,  2704.,  2752.,  2800.,  2848.,  2782.,  2836.,
      2890.,  2944.,  3292.,  3352.,  3412.,  3472.,  1848.,  1888.,  1928.,
      1968.,  2188.,  2232.,  2276.,  2320.,  3012.,  3072.,  3132.,  3192.,
      3498.,  3564.,  3630.,  3696.,  4515.,  4614.,  4713.,  4812.,  5244.,
      5352.,  5460.,  5568.,  5109.,  5226.,  5343.,  5460.,  5910.,  6036.,
      6162.,  6288.,  3228.,  3312.,  3396.,  3480.,  3762.,  3852.,  3942.,
      4032.,  4788.,  4896.,  5004.,  5112.,  5466.,  5580.,  5694.,  5808.,
      6891.,  7062.,  7233.,  7404.,  7908.,  8088.,  8268.,  8448.,  7485.,
      7674.,  7863.,  8052.,  8574.,  8772.,  8970.,  9168.,  4620.,  4752.,
      4884.,  5016.,  5346.,  5484.,  5622.,  5760.,  6564.,  6720.,  6876.,
      7032.,  7434.,  7596.,  7758.,  7920.,  9267.,  9510.,  9753.,  9996.,
      10572., 10824., 11076., 11328., 9861.,  10122., 10383., 10644., 11238.,
      11508., 11778., 12048., 6012.,  6192.,  6372.,  6552.,  6930.,  7116.,
      7302.,  7488.,  8340.,  8544.,  8748.,  8952.,  9402.,  9612.,  9822.,
      10032., 11643., 11958., 12273., 12588., 13236., 13560., 13884., 14208.,
      12237., 12570., 12903., 13236., 13902., 14244., 14586., 14928., 7404.,
      7632.,  7860.,  8088.,  8514.,  8748.,  8982.,  9216.,  4008.,  4160.,
      4312.,  4464.,  4732.,  4888.,  5044.,  5200.,  5266.,  5500.,  5734.,
      5968.,  6352.,  6592.,  6832.,  7072.,  5518.,  5764.,  6010.,  6256.,
      6652.,  6904.,  7156.,  7408.,  3064.,  3232.,  3400.,  3568.,  3820.,
      3992.,  4164.,  4336.};
  const std::array<int, 4> in_shape = {{1, 6, 4, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x6x4x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4515.,  4614.,  4713.,  4812.,  5244.,  5352.,  5460.,  5568.,
      5109.,  5226.,  5343.,  5460.,  5910.,  6036.,  6162.,  6288.,
      6891.,  7062.,  7233.,  7404.,  7908.,  8088.,  8268.,  8448.,
      7485.,  7674.,  7863.,  8052.,  8574.,  8772.,  8970.,  9168.,
      9267.,  9510.,  9753.,  9996.,  10572., 10824., 11076., 11328.,
      9861.,  10122., 10383., 10644., 11238., 11508., 11778., 12048.,
      11643., 11958., 12273., 12588., 13236., 13560., 13884., 14208.,
      12237., 12570., 12903., 13236., 13902., 14244., 14586., 14928.};
  const std::array<int, 4> in_shape = {{1, 6, 4, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x6x4x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1308.,  1456.,  1612.,  1776.,  2146.,  2368.,  2602.,  2848.,  2698.,
      2944.,  3202.,  3472.,  1804.,  1968.,  2140.,  2320.,  2958.,  3192.,
      3438.,  3696.,  4461.,  4812.,  5181.,  5568.,  5073.,  5460.,  5865.,
      6288.,  3222.,  3480.,  3750.,  4032.,  4782.,  5112.,  5454.,  5808.,
      6909.,  7404.,  7917.,  8448.,  7521.,  8052.,  8601.,  9168.,  4662.,
      5016.,  5382.,  5760.,  6606.,  7032.,  7470.,  7920.,  9357.,  9996.,
      10653., 11328., 9969.,  10644., 11337., 12048., 6102.,  6552.,  7014.,
      7488.,  8430.,  8952.,  9486.,  10032., 11805., 12588., 13389., 14208.,
      12417., 13236., 14073., 14928., 7542.,  8088.,  8646.,  9216.,  4108.,
      4464.,  4828.,  5200.,  5434.,  5968.,  6514.,  7072.,  5698.,  6256.,
      6826.,  7408.,  3196.,  3568.,  3948.,  4336.};
  const std::array<int, 4> in_shape = {{1, 6, 4, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x6x4x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4461.,  4812.,  5181.,  5568.,  5073.,  5460.,  5865.,  6288.,
      6909.,  7404.,  7917.,  8448.,  7521.,  8052.,  8601.,  9168.,
      9357.,  9996.,  10653., 11328., 9969.,  10644., 11337., 12048.,
      11805., 12588., 13389., 14208., 12417., 13236., 14073., 14928.};
  const std::array<int, 4> in_shape = {{1, 6, 4, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x6x4x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2572.,  2616.,  2864.,  2912.,  3172.,  3224.,  3496.,  3552.,  4214.,
      4292.,  4652.,  4736.,  5114.,  5204.,  5600.,  5696.,  5294.,  5396.,
      5780.,  5888.,  6290.,  6404.,  6824.,  6944.,  3532.,  3608.,  3856.,
      3936.,  4196.,  4280.,  4552.,  4640.,  5802.,  5916.,  6264.,  6384.,
      6750.,  6876.,  7260.,  7392.,  8733.,  8922.,  9426.,  9624.,  10155.,
      10362., 10920., 11136., 9921.,  10146., 10686., 10920., 11487., 11730.,
      12324., 12576., 6282.,  6444.,  6792.,  6960.,  7326.,  7500.,  7884.,
      8064.,  9354.,  9564.,  10008., 10224., 10686., 10908., 11388., 11616.,
      13485., 13818., 14466., 14808., 15483., 15834., 16536., 16896., 14673.,
      15042., 15726., 16104., 16815., 17202., 17940., 18336., 9066.,  9324.,
      9768.,  10032., 10494., 10764., 11244., 11520., 12906., 13212., 13752.,
      14064., 14622., 14940., 15516., 15840., 18237., 18714., 19506., 19992.,
      20811., 21306., 22152., 22656., 19425., 19938., 20766., 21288., 22143.,
      22674., 23556., 24096., 11850., 12204., 12744., 13104., 13662., 14028.,
      14604., 14976., 16458., 16860., 17496., 17904., 18558., 18972., 19644.,
      20064., 22989., 23610., 24546., 25176., 26139., 26778., 27768., 28416.,
      24177., 24834., 25806., 26472., 27471., 28146., 29172., 29856., 14634.,
      15084., 15720., 16176., 16830., 17292., 17964., 18432., 7916.,  8216.,
      8624.,  8928.,  9348.,  9656.,  10088., 10400., 10406., 10868., 11468.,
      11936., 12554., 13028., 13664., 14144., 10910., 11396., 12020., 12512.,
      13154., 13652., 14312., 14816., 6060.,  6392.,  6800.,  7136.,  7556.,
      7896.,  8328.,  8672.};
  const std::array<int, 4> in_shape = {{1, 6, 4, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x6x4x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      8733.,  8922.,  9426.,  9624.,  10155., 10362., 10920., 11136.,
      9921.,  10146., 10686., 10920., 11487., 11730., 12324., 12576.,
      13485., 13818., 14466., 14808., 15483., 15834., 16536., 16896.,
      14673., 15042., 15726., 16104., 16815., 17202., 17940., 18336.,
      18237., 18714., 19506., 19992., 20811., 21306., 22152., 22656.,
      19425., 19938., 20766., 21288., 22143., 22674., 23556., 24096.,
      22989., 23610., 24546., 25176., 26139., 26778., 27768., 28416.,
      24177., 24834., 25806., 26472., 27471., 28146., 29172., 29856.};
  const std::array<int, 4> in_shape = {{1, 6, 4, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x6x4x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5100.,  5144.,  5188.,  5232.,  5680.,  5728.,  5776.,  5824.,  6292.,
      6344.,  6396.,  6448.,  6936.,  6992.,  7048.,  7104.,  8350.,  8428.,
      8506.,  8584.,  9220.,  9304.,  9388.,  9472.,  10138., 10228., 10318.,
      10408., 11104., 11200., 11296., 11392., 10486., 10588., 10690., 10792.,
      11452., 11560., 11668., 11776., 12466., 12580., 12694., 12808., 13528.,
      13648., 13768., 13888., 6988.,  7064.,  7140.,  7216.,  7632.,  7712.,
      7792.,  7872.,  8308.,  8392.,  8476.,  8560.,  9016.,  9104.,  9192.,
      9280.,  11490., 11604., 11718., 11832., 12408., 12528., 12648., 12768.,
      13374., 13500., 13626., 13752., 14388., 14520., 14652., 14784., 17277.,
      17466., 17655., 17844., 18654., 18852., 19050., 19248., 20103., 20310.,
      20517., 20724., 21624., 21840., 22056., 22272., 19617., 19842., 20067.,
      20292., 21138., 21372., 21606., 21840., 22731., 22974., 23217., 23460.,
      24396., 24648., 24900., 25152., 12402., 12564., 12726., 12888., 13416.,
      13584., 13752., 13920., 14478., 14652., 14826., 15000., 15588., 15768.,
      15948., 16128., 18498., 18708., 18918., 19128., 19800., 20016., 20232.,
      20448., 21150., 21372., 21594., 21816., 22548., 22776., 23004., 23232.,
      26637., 26970., 27303., 27636., 28590., 28932., 29274., 29616., 30615.,
      30966., 31317., 31668., 32712., 33072., 33432., 33792., 28977., 29346.,
      29715., 30084., 31074., 31452., 31830., 32208., 33243., 33630., 34017.,
      34404., 35484., 35880., 36276., 36672., 17874., 18132., 18390., 18648.,
      19272., 19536., 19800., 20064., 20718., 20988., 21258., 21528., 22212.,
      22488., 22764., 23040., 25506., 25812., 26118., 26424., 27192., 27504.,
      27816., 28128., 28926., 29244., 29562., 29880., 30708., 31032., 31356.,
      31680., 35997., 36474., 36951., 37428., 38526., 39012., 39498., 39984.,
      41127., 41622., 42117., 42612., 43800., 44304., 44808., 45312., 38337.,
      38850., 39363., 39876., 41010., 41532., 42054., 42576., 43755., 44286.,
      44817., 45348., 46572., 47112., 47652., 48192., 23346., 23700., 24054.,
      24408., 25128., 25488., 25848., 26208., 26958., 27324., 27690., 28056.,
      28836., 29208., 29580., 29952., 32514., 32916., 33318., 33720., 34584.,
      34992., 35400., 35808., 36702., 37116., 37530., 37944., 38868., 39288.,
      39708., 40128., 45357., 45978., 46599., 47220., 48462., 49092., 49722.,
      50352., 51639., 52278., 52917., 53556., 54888., 55536., 56184., 56832.,
      47697., 48354., 49011., 49668., 50946., 51612., 52278., 52944., 54267.,
      54942., 55617., 56292., 57660., 58344., 59028., 59712., 28818., 29268.,
      29718., 30168., 30984., 31440., 31896., 32352., 33198., 33660., 34122.,
      34584., 35460., 35928., 36396., 36864., 15532., 15832., 16132., 16432.,
      16944., 17248., 17552., 17856., 18388., 18696., 19004., 19312., 19864.,
      20176., 20488., 20800., 20350., 20812., 21274., 21736., 22468., 22936.,
      23404., 23872., 24634., 25108., 25582., 26056., 26848., 27328., 27808.,
      28288., 21334., 21820., 22306., 22792., 23548., 24040., 24532., 25024.,
      25810., 26308., 26806., 27304., 28120., 28624., 29128., 29632., 11788.,
      12120., 12452., 12784., 13264., 13600., 13936., 14272., 14772., 15112.,
      15452., 15792., 16312., 16656., 17000., 17344.};
  const std::array<int, 4> in_shape = {{1, 6, 4, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x6x4x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      17277., 17466., 17655., 17844., 18654., 18852., 19050., 19248., 20103.,
      20310., 20517., 20724., 21624., 21840., 22056., 22272., 19617., 19842.,
      20067., 20292., 21138., 21372., 21606., 21840., 22731., 22974., 23217.,
      23460., 24396., 24648., 24900., 25152., 26637., 26970., 27303., 27636.,
      28590., 28932., 29274., 29616., 30615., 30966., 31317., 31668., 32712.,
      33072., 33432., 33792., 28977., 29346., 29715., 30084., 31074., 31452.,
      31830., 32208., 33243., 33630., 34017., 34404., 35484., 35880., 36276.,
      36672., 35997., 36474., 36951., 37428., 38526., 39012., 39498., 39984.,
      41127., 41622., 42117., 42612., 43800., 44304., 44808., 45312., 38337.,
      38850., 39363., 39876., 41010., 41532., 42054., 42576., 43755., 44286.,
      44817., 45348., 46572., 47112., 47652., 48192., 45357., 45978., 46599.,
      47220., 48462., 49092., 49722., 50352., 51639., 52278., 52917., 53556.,
      54888., 55536., 56184., 56832., 47697., 48354., 49011., 49668., 50946.,
      51612., 52278., 52944., 54267., 54942., 55617., 56292., 57660., 58344.,
      59028., 59712.};
  const std::array<int, 4> in_shape = {{1, 6, 4, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x6x5x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      128., 202.,  241.,  280.,  184., 276., 411., 456., 501., 318.,
      441., 636.,  681.,  726.,  453., 606., 861., 906., 951., 588.,
      771., 1086., 1131., 1176., 723., 400., 541., 562., 583., 340.};
  const std::array<int, 4> in_shape = {{1, 6, 5, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x6x5x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {411., 456., 501., 636.,  681.,  726.,
                                         861., 906., 951., 1086., 1131., 1176.};
  const std::array<int, 4> in_shape = {{1, 6, 5, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x6x5x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      240.,  256.,  377.,  404.,  449.,  482.,  521.,  560.,  340.,  368.,
      513.,  552.,  759.,  822.,  840.,  912.,  921.,  1002., 579.,  636.,
      813.,  882.,  1164., 1272., 1245., 1362., 1326., 1452., 819.,  906.,
      1113., 1212., 1569., 1722., 1650., 1812., 1731., 1902., 1059., 1176.,
      1413., 1542., 1974., 2172., 2055., 2262., 2136., 2352., 1299., 1446.,
      704.,  800.,  935.,  1082., 971.,  1124., 1007., 1166., 572.,  680.};
  const std::array<int, 4> in_shape = {{1, 6, 5, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x6x5x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      759.,  822.,  840.,  912.,  921.,  1002., 1164., 1272.,
      1245., 1362., 1326., 1452., 1569., 1722., 1650., 1812.,
      1731., 1902., 1974., 2172., 2055., 2262., 2136., 2352.};
  const std::array<int, 4> in_shape = {{1, 6, 5, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x6x5x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      464.,  480.,  496.,  512.,  727.,  754.,  781.,  808.,  865.,  898.,
      931.,  964.,  1003., 1042., 1081., 1120., 652.,  680.,  708.,  736.,
      987.,  1026., 1065., 1104., 1455., 1518., 1581., 1644., 1608., 1680.,
      1752., 1824., 1761., 1842., 1923., 2004., 1101., 1158., 1215., 1272.,
      1557., 1626., 1695., 1764., 2220., 2328., 2436., 2544., 2373., 2490.,
      2607., 2724., 2526., 2652., 2778., 2904., 1551., 1638., 1725., 1812.,
      2127., 2226., 2325., 2424., 2985., 3138., 3291., 3444., 3138., 3300.,
      3462., 3624., 3291., 3462., 3633., 3804., 2001., 2118., 2235., 2352.,
      2697., 2826., 2955., 3084., 3750., 3948., 4146., 4344., 3903., 4110.,
      4317., 4524., 4056., 4272., 4488., 4704., 2451., 2598., 2745., 2892.,
      1312., 1408., 1504., 1600., 1723., 1870., 2017., 2164., 1789., 1942.,
      2095., 2248., 1855., 2014., 2173., 2332., 1036., 1144., 1252., 1360.};
  const std::array<int, 4> in_shape = {{1, 6, 5, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x6x5x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1455., 1518., 1581., 1644., 1608., 1680., 1752., 1824., 1761., 1842.,
      1923., 2004., 2220., 2328., 2436., 2544., 2373., 2490., 2607., 2724.,
      2526., 2652., 2778., 2904., 2985., 3138., 3291., 3444., 3138., 3300.,
      3462., 3624., 3291., 3462., 3633., 3804., 3750., 3948., 4146., 4344.,
      3903., 4110., 4317., 4524., 4056., 4272., 4488., 4704.};
  const std::array<int, 4> in_shape = {{1, 6, 5, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x6x5x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      428.,  512.,  682.,  808.,  826.,  964.,  970.,  1120., 636.,  736.,
      966.,  1104., 1437., 1644., 1599., 1824., 1761., 2004., 1110., 1272.,
      1566., 1764., 2247., 2544., 2409., 2724., 2571., 2904., 1590., 1812.,
      2166., 2424., 3057., 3444., 3219., 3624., 3381., 3804., 2070., 2352.,
      2766., 3084., 3867., 4344., 4029., 4524., 4191., 4704., 2550., 2892.,
      1380., 1600., 1834., 2164., 1906., 2248., 1978., 2332., 1124., 1360.};
  const std::array<int, 4> in_shape = {{1, 6, 5, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x6x5x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1437., 1644., 1599., 1824., 1761., 2004., 2247., 2544.,
      2409., 2724., 2571., 2904., 3057., 3444., 3219., 3624.,
      3381., 3804., 3867., 4344., 4029., 4524., 4191., 4704.};
  const std::array<int, 4> in_shape = {{1, 6, 5, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x6x5x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      828.,  856.,  992.,  1024., 1316., 1364., 1562., 1616., 1592., 1652.,
      1862., 1928., 1868., 1940., 2162., 2240., 1220., 1272., 1416., 1472.,
      1860., 1932., 2130., 2208., 2757., 2874., 3162., 3288., 3063., 3198.,
      3504., 3648., 3369., 3522., 3846., 4008., 2112., 2220., 2430., 2544.,
      3000., 3132., 3390., 3528., 4287., 4494., 4872., 5088., 4593., 4818.,
      5214., 5448., 4899., 5142., 5556., 5808., 3012., 3180., 3450., 3624.,
      4140., 4332., 4650., 4848., 5817., 6114., 6582., 6888., 6123., 6438.,
      6924., 7248., 6429., 6762., 7266., 7608., 3912., 4140., 4470., 4704.,
      5280., 5532., 5910., 6168., 7347., 7734., 8292., 8688., 7653., 8058.,
      8634., 9048., 7959., 8382., 8976., 9408., 4812., 5100., 5490., 5784.,
      2572., 2760., 3008., 3200., 3380., 3668., 4034., 4328., 3512., 3812.,
      4190., 4496., 3644., 3956., 4346., 4664., 2036., 2248., 2504., 2720.};
  const std::array<int, 4> in_shape = {{1, 6, 5, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x6x5x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2757., 2874., 3162., 3288., 3063., 3198., 3504., 3648., 3369., 3522.,
      3846., 4008., 4287., 4494., 4872., 5088., 4593., 4818., 5214., 5448.,
      4899., 5142., 5556., 5808., 5817., 6114., 6582., 6888., 6123., 6438.,
      6924., 7248., 6429., 6762., 7266., 7608., 7347., 7734., 8292., 8688.,
      7653., 8058., 8634., 9048., 7959., 8382., 8976., 9408.};
  const std::array<int, 4> in_shape = {{1, 6, 5, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x6x5x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1628.,  1656.,  1684.,  1712.,  1952.,  1984.,  2016.,  2048.,  2584.,
      2632.,  2680.,  2728.,  3070.,  3124.,  3178.,  3232.,  3124.,  3184.,
      3244.,  3304.,  3658.,  3724.,  3790.,  3856.,  3664.,  3736.,  3808.,
      3880.,  4246.,  4324.,  4402.,  4480.,  2388.,  2440.,  2492.,  2544.,
      2776.,  2832.,  2888.,  2944.,  3648.,  3720.,  3792.,  3864.,  4182.,
      4260.,  4338.,  4416.,  5397.,  5514.,  5631.,  5748.,  6198.,  6324.,
      6450.,  6576.,  5991.,  6126.,  6261.,  6396.,  6864.,  7008.,  7152.,
      7296.,  6585.,  6738.,  6891.,  7044.,  7530.,  7692.,  7854.,  8016.,
      4116.,  4224.,  4332.,  4440.,  4746.,  4860.,  4974.,  5088.,  5868.,
      6000.,  6132.,  6264.,  6642.,  6780.,  6918.,  7056.,  8367.,  8574.,
      8781.,  8988.,  9528.,  9744.,  9960.,  10176., 8961.,  9186.,  9411.,
      9636.,  10194., 10428., 10662., 10896., 9555.,  9798.,  10041., 10284.,
      10860., 11112., 11364., 11616., 5856.,  6024.,  6192.,  6360.,  6726.,
      6900.,  7074.,  7248.,  8088.,  8280.,  8472.,  8664.,  9102.,  9300.,
      9498.,  9696.,  11337., 11634., 11931., 12228., 12858., 13164., 13470.,
      13776., 11931., 12246., 12561., 12876., 13524., 13848., 14172., 14496.,
      12525., 12858., 13191., 13524., 14190., 14532., 14874., 15216., 7596.,
      7824.,  8052.,  8280.,  8706.,  8940.,  9174.,  9408.,  10308., 10560.,
      10812., 11064., 11562., 11820., 12078., 12336., 14307., 14694., 15081.,
      15468., 16188., 16584., 16980., 17376., 14901., 15306., 15711., 16116.,
      16854., 17268., 17682., 18096., 15495., 15918., 16341., 16764., 17520.,
      17952., 18384., 18816., 9336.,  9624.,  9912.,  10200., 10686., 10980.,
      11274., 11568., 4956.,  5144.,  5332.,  5520.,  5824.,  6016.,  6208.,
      6400.,  6472.,  6760.,  7048.,  7336.,  7774.,  8068.,  8362.,  8656.,
      6724.,  7024.,  7324.,  7624.,  8074.,  8380.,  8686.,  8992.,  6976.,
      7288.,  7600.,  7912.,  8374.,  8692.,  9010.,  9328.,  3860.,  4072.,
      4284.,  4496.,  4792.,  5008.,  5224.,  5440.};
  const std::array<int, 4> in_shape = {{1, 6, 5, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x6x5x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5397.,  5514.,  5631.,  5748.,  6198.,  6324.,  6450.,  6576.,  5991.,
      6126.,  6261.,  6396.,  6864.,  7008.,  7152.,  7296.,  6585.,  6738.,
      6891.,  7044.,  7530.,  7692.,  7854.,  8016.,  8367.,  8574.,  8781.,
      8988.,  9528.,  9744.,  9960.,  10176., 8961.,  9186.,  9411.,  9636.,
      10194., 10428., 10662., 10896., 9555.,  9798.,  10041., 10284., 10860.,
      11112., 11364., 11616., 11337., 11634., 11931., 12228., 12858., 13164.,
      13470., 13776., 11931., 12246., 12561., 12876., 13524., 13848., 14172.,
      14496., 12525., 12858., 13191., 13524., 14190., 14532., 14874., 15216.,
      14307., 14694., 15081., 15468., 16188., 16584., 16980., 17376., 14901.,
      15306., 15711., 16116., 16854., 17268., 17682., 18096., 15495., 15918.,
      16341., 16764., 17520., 17952., 18384., 18816.};
  const std::array<int, 4> in_shape = {{1, 6, 5, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x6x5x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1556.,  1712.,  1876.,  2048.,  2494.,  2728.,  2974.,  3232.,  3046.,
      3304.,  3574.,  3856.,  3598.,  3880.,  4174.,  4480.,  2356.,  2544.,
      2740.,  2944.,  3606.,  3864.,  4134.,  4416.,  5361.,  5748.,  6153.,
      6576.,  5973.,  6396.,  6837.,  7296.,  6585.,  7044.,  7521.,  8016.,
      4134.,  4440.,  4758.,  5088.,  5886.,  6264.,  6654.,  7056.,  8421.,
      8988.,  9573.,  10176., 9033.,  9636.,  10257., 10896., 9645.,  10284.,
      10941., 11616., 5934.,  6360.,  6798.,  7248.,  8166.,  8664.,  9174.,
      9696.,  11481., 12228., 12993., 13776., 12093., 12876., 13677., 14496.,
      12705., 13524., 14361., 15216., 7734.,  8280.,  8838.,  9408.,  10446.,
      11064., 11694., 12336., 14541., 15468., 16413., 17376., 15153., 16116.,
      17097., 18096., 15765., 16764., 17781., 18816., 9534.,  10200., 10878.,
      11568., 5092.,  5520.,  5956.,  6400.,  6694.,  7336.,  7990.,  8656.,
      6958.,  7624.,  8302.,  8992.,  7222.,  7912.,  8614.,  9328.,  4036.,
      4496.,  4964.,  5440.};
  const std::array<int, 4> in_shape = {{1, 6, 5, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x6x5x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5361.,  5748.,  6153.,  6576.,  5973.,  6396.,  6837.,  7296.,
      6585.,  7044.,  7521.,  8016.,  8421.,  8988.,  9573.,  10176.,
      9033.,  9636.,  10257., 10896., 9645.,  10284., 10941., 11616.,
      11481., 12228., 12993., 13776., 12093., 12876., 13677., 14496.,
      12705., 13524., 14361., 15216., 14541., 15468., 16413., 17376.,
      15153., 16116., 17097., 18096., 15765., 16764., 17781., 18816.};
  const std::array<int, 4> in_shape = {{1, 6, 5, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x6x5x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3060.,  3112.,  3368.,  3424.,  3692.,  3752.,  4032.,  4096.,  4898.,
      4988.,  5360.,  5456.,  5846.,  5948.,  6356.,  6464.,  5978.,  6092.,
      6488.,  6608.,  7022.,  7148.,  7580.,  7712.,  7058.,  7196.,  7616.,
      7760.,  8198.,  8348.,  8804.,  8960.,  4612.,  4712.,  4984.,  5088.,
      5372.,  5480.,  5776.,  5888.,  7074.,  7212.,  7584.,  7728.,  8118.,
      8268.,  8676.,  8832.,  10497., 10722., 11262., 11496., 12063., 12306.,
      12900., 13152., 11685., 11946., 12522., 12792., 13395., 13674., 14304.,
      14592., 12873., 13170., 13782., 14088., 14727., 15042., 15708., 16032.,
      8058.,  8268.,  8664.,  8880.,  9294.,  9516.,  9948.,  10176., 11514.,
      11772., 12264., 12528., 13038., 13308., 13836., 14112., 16437., 16842.,
      17562., 17976., 18723., 19146., 19920., 20352., 17625., 18066., 18822.,
      19272., 20055., 20514., 21324., 21792., 18813., 19290., 20082., 20568.,
      21387., 21882., 22728., 23232., 11538., 11868., 12384., 12720., 13254.,
      13596., 14148., 14496., 15954., 16332., 16944., 17328., 17958., 18348.,
      18996., 19392., 22377., 22962., 23862., 24456., 25383., 25986., 26940.,
      27552., 23565., 24186., 25122., 25752., 26715., 27354., 28344., 28992.,
      24753., 25410., 26382., 27048., 28047., 28722., 29748., 30432., 15018.,
      15468., 16104., 16560., 17214., 17676., 18348., 18816., 20394., 20892.,
      21624., 22128., 22878., 23388., 24156., 24672., 28317., 29082., 30162.,
      30936., 32043., 32826., 33960., 34752., 29505., 30306., 31422., 32232.,
      33375., 34194., 35364., 36192., 30693., 31530., 32682., 33528., 34707.,
      35562., 36768., 37632., 18498., 19068., 19824., 20400., 21174., 21756.,
      22548., 23136., 9812.,  10184., 10664., 11040., 11532., 11912., 12416.,
      12800., 12818., 13388., 14096., 14672., 15398., 15980., 16724., 17312.,
      13322., 13916., 14648., 15248., 15998., 16604., 17372., 17984., 13826.,
      14444., 15200., 15824., 16598., 17228., 18020., 18656., 7652.,  8072.,
      8568.,  8992.,  9500.,  9928.,  10448., 10880.};
  const std::array<int, 4> in_shape = {{1, 6, 5, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x6x5x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      10497., 10722., 11262., 11496., 12063., 12306., 12900., 13152., 11685.,
      11946., 12522., 12792., 13395., 13674., 14304., 14592., 12873., 13170.,
      13782., 14088., 14727., 15042., 15708., 16032., 16437., 16842., 17562.,
      17976., 18723., 19146., 19920., 20352., 17625., 18066., 18822., 19272.,
      20055., 20514., 21324., 21792., 18813., 19290., 20082., 20568., 21387.,
      21882., 22728., 23232., 22377., 22962., 23862., 24456., 25383., 25986.,
      26940., 27552., 23565., 24186., 25122., 25752., 26715., 27354., 28344.,
      28992., 24753., 25410., 26382., 27048., 28047., 28722., 29748., 30432.,
      28317., 29082., 30162., 30936., 32043., 32826., 33960., 34752., 29505.,
      30306., 31422., 32232., 33375., 34194., 35364., 36192., 30693., 31530.,
      32682., 33528., 34707., 35562., 36768., 37632.};
  const std::array<int, 4> in_shape = {{1, 6, 5, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x6x5x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6068.,  6120.,  6172.,  6224.,  6680.,  6736.,  6792.,  6848.,  7324.,
      7384.,  7444.,  7504.,  8000.,  8064.,  8128.,  8192.,  9706.,  9796.,
      9886.,  9976.,  10624., 10720., 10816., 10912., 11590., 11692., 11794.,
      11896., 12604., 12712., 12820., 12928., 11842., 11956., 12070., 12184.,
      12856., 12976., 13096., 13216., 13918., 14044., 14170., 14296., 15028.,
      15160., 15292., 15424., 13978., 14116., 14254., 14392., 15088., 15232.,
      15376., 15520., 16246., 16396., 16546., 16696., 17452., 17608., 17764.,
      17920., 9124.,  9224.,  9324.,  9424.,  9864.,  9968.,  10072., 10176.,
      10636., 10744., 10852., 10960., 11440., 11552., 11664., 11776., 14010.,
      14148., 14286., 14424., 15024., 15168., 15312., 15456., 16086., 16236.,
      16386., 16536., 17196., 17352., 17508., 17664., 20769., 20994., 21219.,
      21444., 22290., 22524., 22758., 22992., 23883., 24126., 24369., 24612.,
      25548., 25800., 26052., 26304., 23109., 23370., 23631., 23892., 24774.,
      25044., 25314., 25584., 26511., 26790., 27069., 27348., 28320., 28608.,
      28896., 29184., 25449., 25746., 26043., 26340., 27258., 27564., 27870.,
      28176., 29139., 29454., 29769., 30084., 31092., 31416., 31740., 32064.,
      15906., 16116., 16326., 16536., 17112., 17328., 17544., 17760., 18366.,
      18588., 18810., 19032., 19668., 19896., 20124., 20352., 22770., 23028.,
      23286., 23544., 24264., 24528., 24792., 25056., 25806., 26076., 26346.,
      26616., 27396., 27672., 27948., 28224., 32469., 32874., 33279., 33684.,
      34710., 35124., 35538., 35952., 37023., 37446., 37869., 38292., 39408.,
      39840., 40272., 40704., 34809., 35250., 35691., 36132., 37194., 37644.,
      38094., 38544., 39651., 40110., 40569., 41028., 42180., 42648., 43116.,
      43584., 37149., 37626., 38103., 38580., 39678., 40164., 40650., 41136.,
      42279., 42774., 43269., 43764., 44952., 45456., 45960., 46464., 22746.,
      23076., 23406., 23736., 24432., 24768., 25104., 25440., 26166., 26508.,
      26850., 27192., 27948., 28296., 28644., 28992., 31530., 31908., 32286.,
      32664., 33504., 33888., 34272., 34656., 35526., 35916., 36306., 36696.,
      37596., 37992., 38388., 38784., 44169., 44754., 45339., 45924., 47130.,
      47724., 48318., 48912., 50163., 50766., 51369., 51972., 53268., 53880.,
      54492., 55104., 46509., 47130., 47751., 48372., 49614., 50244., 50874.,
      51504., 52791., 53430., 54069., 54708., 56040., 56688., 57336., 57984.,
      48849., 49506., 50163., 50820., 52098., 52764., 53430., 54096., 55419.,
      56094., 56769., 57444., 58812., 59496., 60180., 60864., 29586., 30036.,
      30486., 30936., 31752., 32208., 32664., 33120., 33966., 34428., 34890.,
      35352., 36228., 36696., 37164., 37632., 40290., 40788., 41286., 41784.,
      42744., 43248., 43752., 44256., 45246., 45756., 46266., 46776., 47796.,
      48312., 48828., 49344., 55869., 56634., 57399., 58164., 59550., 60324.,
      61098., 61872., 63303., 64086., 64869., 65652., 67128., 67920., 68712.,
      69504., 58209., 59010., 59811., 60612., 62034., 62844., 63654., 64464.,
      65931., 66750., 67569., 68388., 69900., 70728., 71556., 72384., 60549.,
      61386., 62223., 63060., 64518., 65364., 66210., 67056., 68559., 69414.,
      70269., 71124., 72672., 73536., 74400., 75264., 36426., 36996., 37566.,
      38136., 39072., 39648., 40224., 40800., 41766., 42348., 42930., 43512.,
      44508., 45096., 45684., 46272., 19252., 19624., 19996., 20368., 20952.,
      21328., 21704., 22080., 22684., 23064., 23444., 23824., 24448., 24832.,
      25216., 25600., 25066., 25636., 26206., 26776., 27616., 28192., 28768.,
      29344., 30214., 30796., 31378., 31960., 32860., 33448., 34036., 34624.,
      26050., 26644., 27238., 27832., 28696., 29296., 29896., 30496., 31390.,
      31996., 32602., 33208., 34132., 34744., 35356., 35968., 27034., 27652.,
      28270., 28888., 29776., 30400., 31024., 31648., 32566., 33196., 33826.,
      34456., 35404., 36040., 36676., 37312., 14884., 15304., 15724., 16144.,
      16712., 17136., 17560., 17984., 18572., 19000., 19428., 19856., 20464.,
      20896., 21328., 21760.};
  const std::array<int, 4> in_shape = {{1, 6, 5, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x6x5x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      20769., 20994., 21219., 21444., 22290., 22524., 22758., 22992., 23883.,
      24126., 24369., 24612., 25548., 25800., 26052., 26304., 23109., 23370.,
      23631., 23892., 24774., 25044., 25314., 25584., 26511., 26790., 27069.,
      27348., 28320., 28608., 28896., 29184., 25449., 25746., 26043., 26340.,
      27258., 27564., 27870., 28176., 29139., 29454., 29769., 30084., 31092.,
      31416., 31740., 32064., 32469., 32874., 33279., 33684., 34710., 35124.,
      35538., 35952., 37023., 37446., 37869., 38292., 39408., 39840., 40272.,
      40704., 34809., 35250., 35691., 36132., 37194., 37644., 38094., 38544.,
      39651., 40110., 40569., 41028., 42180., 42648., 43116., 43584., 37149.,
      37626., 38103., 38580., 39678., 40164., 40650., 41136., 42279., 42774.,
      43269., 43764., 44952., 45456., 45960., 46464., 44169., 44754., 45339.,
      45924., 47130., 47724., 48318., 48912., 50163., 50766., 51369., 51972.,
      53268., 53880., 54492., 55104., 46509., 47130., 47751., 48372., 49614.,
      50244., 50874., 51504., 52791., 53430., 54069., 54708., 56040., 56688.,
      57336., 57984., 48849., 49506., 50163., 50820., 52098., 52764., 53430.,
      54096., 55419., 56094., 56769., 57444., 58812., 59496., 60180., 60864.,
      55869., 56634., 57399., 58164., 59550., 60324., 61098., 61872., 63303.,
      64086., 64869., 65652., 67128., 67920., 68712., 69504., 58209., 59010.,
      59811., 60612., 62034., 62844., 63654., 64464., 65931., 66750., 67569.,
      68388., 69900., 70728., 71556., 72384., 60549., 61386., 62223., 63060.,
      64518., 65364., 66210., 67056., 68559., 69414., 70269., 71124., 72672.,
      73536., 74400., 75264.};
  const std::array<int, 4> in_shape = {{1, 6, 5, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x6x6x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      145.,  226.,  265.,  304.,  343.,  223., 321., 474.,  519.,
      564.,  609.,  384.,  519.,  744.,  789., 834., 879.,  546.,
      717.,  1014., 1059., 1104., 1149., 708., 915., 1284., 1329.,
      1374., 1419., 870.,  475.,  640.,  661., 682., 703.,  409.};
  const std::array<int, 4> in_shape = {{1, 6, 6, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x6x6x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      474.,  519.,  564.,  609.,  744.,  789.,  834.,  879.,
      1014., 1059., 1104., 1149., 1284., 1329., 1374., 1419.};
  const std::array<int, 4> in_shape = {{1, 6, 6, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x6x6x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      272.,  290.,  422.,  452.,  494.,  530.,  566.,  608.,  638.,
      686.,  412.,  446.,  597.,  642.,  876.,  948.,  957.,  1038.,
      1038., 1128., 1119., 1218., 699.,  768.,  957.,  1038., 1362.,
      1488., 1443., 1578., 1524., 1668., 1605., 1758., 987.,  1092.,
      1317., 1434., 1848., 2028., 1929., 2118., 2010., 2208., 2091.,
      2298., 1275., 1416., 1677., 1830., 2334., 2568., 2415., 2658.,
      2496., 2748., 2577., 2838., 1563., 1740., 836.,  950.,  1106.,
      1280., 1142., 1322., 1178., 1364., 1214., 1406., 688.,  818.};
  const std::array<int, 4> in_shape = {{1, 6, 6, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x6x6x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      876.,  948.,  957.,  1038., 1038., 1128., 1119., 1218.,
      1362., 1488., 1443., 1578., 1524., 1668., 1605., 1758.,
      1848., 2028., 1929., 2118., 2010., 2208., 2091., 2298.,
      2334., 2568., 2415., 2658., 2496., 2748., 2577., 2838.};
  const std::array<int, 4> in_shape = {{1, 6, 6, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x6x6x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      526.,  544.,  562.,  580.,  814.,  844.,  874.,  904.,  952.,  988.,
      1024., 1060., 1090., 1132., 1174., 1216., 1228., 1276., 1324., 1372.,
      790.,  824.,  858.,  892.,  1149., 1194., 1239., 1284., 1680., 1752.,
      1824., 1896., 1833., 1914., 1995., 2076., 1986., 2076., 2166., 2256.,
      2139., 2238., 2337., 2436., 1329., 1398., 1467., 1536., 1833., 1914.,
      1995., 2076., 2598., 2724., 2850., 2976., 2751., 2886., 3021., 3156.,
      2904., 3048., 3192., 3336., 3057., 3210., 3363., 3516., 1869., 1974.,
      2079., 2184., 2517., 2634., 2751., 2868., 3516., 3696., 3876., 4056.,
      3669., 3858., 4047., 4236., 3822., 4020., 4218., 4416., 3975., 4182.,
      4389., 4596., 2409., 2550., 2691., 2832., 3201., 3354., 3507., 3660.,
      4434., 4668., 4902., 5136., 4587., 4830., 5073., 5316., 4740., 4992.,
      5244., 5496., 4893., 5154., 5415., 5676., 2949., 3126., 3303., 3480.,
      1558., 1672., 1786., 1900., 2038., 2212., 2386., 2560., 2104., 2284.,
      2464., 2644., 2170., 2356., 2542., 2728., 2236., 2428., 2620., 2812.,
      1246., 1376., 1506., 1636.};
  const std::array<int, 4> in_shape = {{1, 6, 6, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x6x6x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1680., 1752., 1824., 1896., 1833., 1914., 1995., 2076., 1986., 2076.,
      2166., 2256., 2139., 2238., 2337., 2436., 2598., 2724., 2850., 2976.,
      2751., 2886., 3021., 3156., 2904., 3048., 3192., 3336., 3057., 3210.,
      3363., 3516., 3516., 3696., 3876., 4056., 3669., 3858., 4047., 4236.,
      3822., 4020., 4218., 4416., 3975., 4182., 4389., 4596., 4434., 4668.,
      4902., 5136., 4587., 4830., 5073., 5316., 4740., 4992., 5244., 5496.,
      4893., 5154., 5415., 5676.};
  const std::array<int, 4> in_shape = {{1, 6, 6, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x6x6x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      492.,  580.,  772.,  904.,  916.,  1060., 1060., 1216., 1204.,
      1372., 780.,  892.,  1134., 1284., 1671., 1896., 1833., 2076.,
      1995., 2256., 2157., 2436., 1350., 1536., 1854., 2076., 2643.,
      2976., 2805., 3156., 2967., 3336., 3129., 3516., 1926., 2184.,
      2574., 2868., 3615., 4056., 3777., 4236., 3939., 4416., 4101.,
      4596., 2502., 2832., 3294., 3660., 4587., 5136., 4749., 5316.,
      4911., 5496., 5073., 5676., 3078., 3480., 1644., 1900., 2176.,
      2560., 2248., 2644., 2320., 2728., 2392., 2812., 1356., 1636.};
  const std::array<int, 4> in_shape = {{1, 6, 6, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x6x6x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1671., 1896., 1833., 2076., 1995., 2256., 2157., 2436.,
      2643., 2976., 2805., 3156., 2967., 3336., 3129., 3516.,
      3615., 4056., 3777., 4236., 3939., 4416., 4101., 4596.,
      4587., 5136., 4749., 5316., 4911., 5496., 5073., 5676.};
  const std::array<int, 4> in_shape = {{1, 6, 6, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x6x6x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      952.,  984.,  1124.,  1160.,  1490.,  1544.,  1748.,  1808.,  1766.,
      1832., 2048., 2120.,  2042.,  2120.,  2348.,  2432.,  2318.,  2408.,
      2648., 2744., 1496.,  1560.,  1716.,  1784.,  2184.,  2268.,  2478.,
      2568., 3207., 3342.,  3648.,  3792.,  3513.,  3666.,  3990.,  4152.,
      3819., 3990., 4332.,  4512.,  4125.,  4314.,  4674.,  4872.,  2568.,
      2700., 2934., 3072.,  3552.,  3708.,  3990.,  4152.,  5043.,  5286.,
      5700., 5952., 5349.,  5610.,  6042.,  6312.,  5655.,  5934.,  6384.,
      6672., 5961., 6258.,  6726.,  7032.,  3648.,  3852.,  4158.,  4368.,
      4920., 5148., 5502.,  5736.,  6879.,  7230.,  7752.,  8112.,  7185.,
      7554., 8094., 8472.,  7491.,  7878.,  8436.,  8832.,  7797.,  8202.,
      8778., 9192., 4728.,  5004.,  5382.,  5664.,  6288.,  6588.,  7014.,
      7320., 8715., 9174.,  9804.,  10272., 9021.,  9498.,  10146., 10632.,
      9327., 9822., 10488., 10992., 9633.,  10146., 10830., 11352., 5808.,
      6156., 6606., 6960.,  3064.,  3288.,  3572.,  3800.,  4010.,  4352.,
      4772., 5120., 4142.,  4496.,  4928.,  5288.,  4274.,  4640.,  5084.,
      5456., 4406., 4784.,  5240.,  5624.,  2456.,  2712.,  3012.,  3272.};
  const std::array<int, 4> in_shape = {{1, 6, 6, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x6x6x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3207., 3342., 3648.,  3792.,  3513., 3666.,  3990.,  4152.,
      3819., 3990., 4332.,  4512.,  4125., 4314.,  4674.,  4872.,
      5043., 5286., 5700.,  5952.,  5349., 5610.,  6042.,  6312.,
      5655., 5934., 6384.,  6672.,  5961., 6258.,  6726.,  7032.,
      6879., 7230., 7752.,  8112.,  7185., 7554.,  8094.,  8472.,
      7491., 7878., 8436.,  8832.,  7797., 8202.,  8778.,  9192.,
      8715., 9174., 9804.,  10272., 9021., 9498.,  10146., 10632.,
      9327., 9822., 10488., 10992., 9633., 10146., 10830., 11352.};
  const std::array<int, 4> in_shape = {{1, 6, 6, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x6x6x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1872.,  1904.,  1936.,  1968.,  2212.,  2248.,  2284.,  2320.,  2926.,
      2980.,  3034.,  3088.,  3436.,  3496.,  3556.,  3616.,  3466.,  3532.,
      3598.,  3664.,  4024.,  4096.,  4168.,  4240.,  4006.,  4084.,  4162.,
      4240.,  4612.,  4696.,  4780.,  4864.,  4546.,  4636.,  4726.,  4816.,
      5200.,  5296.,  5392.,  5488.,  2928.,  2992.,  3056.,  3120.,  3364.,
      3432.,  3500.,  3568.,  4284.,  4368.,  4452.,  4536.,  4866.,  4956.,
      5046.,  5136.,  6279.,  6414.,  6549.,  6684.,  7152.,  7296.,  7440.,
      7584.,  6873.,  7026.,  7179.,  7332.,  7818.,  7980.,  8142.,  8304.,
      7467.,  7638.,  7809.,  7980.,  8484.,  8664.,  8844.,  9024.,  8061.,
      8250.,  8439.,  8628.,  9150.,  9348.,  9546.,  9744.,  5004.,  5136.,
      5268.,  5400.,  5730.,  5868.,  6006.,  6144.,  6948.,  7104.,  7260.,
      7416.,  7818.,  7980.,  8142.,  8304.,  9843.,  10086., 10329., 10572.,
      11148., 11400., 11652., 11904., 10437., 10698., 10959., 11220., 11814.,
      12084., 12354., 12624., 11031., 11310., 11589., 11868., 12480., 12768.,
      13056., 13344., 11625., 11922., 12219., 12516., 13146., 13452., 13758.,
      14064., 7092.,  7296.,  7500.,  7704.,  8106.,  8316.,  8526.,  8736.,
      9612.,  9840.,  10068., 10296., 10770., 11004., 11238., 11472., 13407.,
      13758., 14109., 14460., 15144., 15504., 15864., 16224., 14001., 14370.,
      14739., 15108., 15810., 16188., 16566., 16944., 14595., 14982., 15369.,
      15756., 16476., 16872., 17268., 17664., 15189., 15594., 15999., 16404.,
      17142., 17556., 17970., 18384., 9180.,  9456.,  9732.,  10008., 10482.,
      10764., 11046., 11328., 12276., 12576., 12876., 13176., 13722., 14028.,
      14334., 14640., 16971., 17430., 17889., 18348., 19140., 19608., 20076.,
      20544., 17565., 18042., 18519., 18996., 19806., 20292., 20778., 21264.,
      18159., 18654., 19149., 19644., 20472., 20976., 21480., 21984., 18753.,
      19266., 19779., 20292., 21138., 21660., 22182., 22704., 11268., 11616.,
      11964., 12312., 12858., 13212., 13566., 13920., 5904.,  6128.,  6352.,
      6576.,  6916.,  7144.,  7372.,  7600.,  7678.,  8020.,  8362.,  8704.,
      9196.,  9544.,  9892.,  10240., 7930.,  8284.,  8638.,  8992.,  9496.,
      9856.,  10216., 10576., 8182.,  8548.,  8914.,  9280.,  9796.,  10168.,
      10540., 10912., 8434.,  8812.,  9190.,  9568.,  10096., 10480., 10864.,
      11248., 4656.,  4912.,  5168.,  5424.,  5764.,  6024.,  6284.,  6544.};
  const std::array<int, 4> in_shape = {{1, 6, 6, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x6x6x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6279.,  6414.,  6549.,  6684.,  7152.,  7296.,  7440.,  7584.,  6873.,
      7026.,  7179.,  7332.,  7818.,  7980.,  8142.,  8304.,  7467.,  7638.,
      7809.,  7980.,  8484.,  8664.,  8844.,  9024.,  8061.,  8250.,  8439.,
      8628.,  9150.,  9348.,  9546.,  9744.,  9843.,  10086., 10329., 10572.,
      11148., 11400., 11652., 11904., 10437., 10698., 10959., 11220., 11814.,
      12084., 12354., 12624., 11031., 11310., 11589., 11868., 12480., 12768.,
      13056., 13344., 11625., 11922., 12219., 12516., 13146., 13452., 13758.,
      14064., 13407., 13758., 14109., 14460., 15144., 15504., 15864., 16224.,
      14001., 14370., 14739., 15108., 15810., 16188., 16566., 16944., 14595.,
      14982., 15369., 15756., 16476., 16872., 17268., 17664., 15189., 15594.,
      15999., 16404., 17142., 17556., 17970., 18384., 16971., 17430., 17889.,
      18348., 19140., 19608., 20076., 20544., 17565., 18042., 18519., 18996.,
      19806., 20292., 20778., 21264., 18159., 18654., 19149., 19644., 20472.,
      20976., 21480., 21984., 18753., 19266., 19779., 20292., 21138., 21660.,
      22182., 22704.};
  const std::array<int, 4> in_shape = {{1, 6, 6, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x6x6x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1804.,  1968.,  2140.,  2320.,  2842.,  3088.,  3346.,  3616.,  3394.,
      3664.,  3946.,  4240.,  3946.,  4240.,  4546.,  4864.,  4498.,  4816.,
      5146.,  5488.,  2908.,  3120.,  3340.,  3568.,  4254.,  4536.,  4830.,
      5136.,  6261.,  6684.,  7125.,  7584.,  6873.,  7332.,  7809.,  8304.,
      7485.,  7980.,  8493.,  9024.,  8097.,  8628.,  9177.,  9744.,  5046.,
      5400.,  5766.,  6144.,  6990.,  7416.,  7854.,  8304.,  9933.,  10572.,
      11229., 11904., 10545., 11220., 11913., 12624., 11157., 11868., 12597.,
      13344., 11769., 12516., 13281., 14064., 7206.,  7704.,  8214.,  8736.,
      9726.,  10296., 10878., 11472., 13605., 14460., 15333., 16224., 14217.,
      15108., 16017., 16944., 14829., 15756., 16701., 17664., 15441., 16404.,
      17385., 18384., 9366.,  10008., 10662., 11328., 12462., 13176., 13902.,
      14640., 17277., 18348., 19437., 20544., 17889., 18996., 20121., 21264.,
      18501., 19644., 20805., 21984., 19113., 20292., 21489., 22704., 11526.,
      12312., 13110., 13920., 6076.,  6576.,  7084.,  7600.,  7954.,  8704.,
      9466.,  10240., 8218.,  8992.,  9778.,  10576., 8482.,  9280.,  10090.,
      10912., 8746.,  9568.,  10402., 11248., 4876.,  5424.,  5980.,  6544.};
  const std::array<int, 4> in_shape = {{1, 6, 6, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x6x6x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6261.,  6684.,  7125.,  7584.,  6873.,  7332.,  7809.,  8304.,
      7485.,  7980.,  8493.,  9024.,  8097.,  8628.,  9177.,  9744.,
      9933.,  10572., 11229., 11904., 10545., 11220., 11913., 12624.,
      11157., 11868., 12597., 13344., 11769., 12516., 13281., 14064.,
      13605., 14460., 15333., 16224., 14217., 15108., 16017., 16944.,
      14829., 15756., 16701., 17664., 15441., 16404., 17385., 18384.,
      17277., 18348., 19437., 20544., 17889., 18996., 20121., 21264.,
      18501., 19644., 20805., 21984., 19113., 20292., 21489., 22704.};
  const std::array<int, 4> in_shape = {{1, 6, 6, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x6x6x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3548.,  3608.,  3872.,  3936.,  4212.,  4280.,  4568.,  4640.,  5582.,
      5684.,  6068.,  6176.,  6578.,  6692.,  7112.,  7232.,  6662.,  6788.,
      7196.,  7328.,  7754.,  7892.,  8336.,  8480.,  7742.,  7892.,  8324.,
      8480.,  8930.,  9092.,  9560.,  9728.,  8822.,  8996.,  9452.,  9632.,
      10106., 10292., 10784., 10976., 5692.,  5816.,  6112.,  6240.,  6548.,
      6680.,  7000.,  7136.,  8346.,  8508.,  8904.,  9072.,  9486.,  9660.,
      10092., 10272., 12261., 12522., 13098., 13368., 13971., 14250., 14880.,
      15168., 13449., 13746., 14358., 14664., 15303., 15618., 16284., 16608.,
      14637., 14970., 15618., 15960., 16635., 16986., 17688., 18048., 15825.,
      16194., 16878., 17256., 17967., 18354., 19092., 19488., 9834.,  10092.,
      10536., 10800., 11262., 11532., 12012., 12288., 13674., 13980., 14520.,
      14832., 15390., 15708., 16284., 16608., 19389., 19866., 20658., 21144.,
      21963., 22458., 23304., 23808., 20577., 21090., 21918., 22440., 23295.,
      23826., 24708., 25248., 21765., 22314., 23178., 23736., 24627., 25194.,
      26112., 26688., 22953., 23538., 24438., 25032., 25959., 26562., 27516.,
      28128., 14010., 14412., 15000., 15408., 16014., 16428., 17052., 17472.,
      19002., 19452., 20136., 20592., 21294., 21756., 22476., 22944., 26517.,
      27210., 28218., 28920., 29955., 30666., 31728., 32448., 27705., 28434.,
      29478., 30216., 31287., 32034., 33132., 33888., 28893., 29658., 30738.,
      31512., 32619., 33402., 34536., 35328., 30081., 30882., 31998., 32808.,
      33951., 34770., 35940., 36768., 18186., 18732., 19464., 20016., 20766.,
      21324., 22092., 22656., 24330., 24924., 25752., 26352., 27198., 27804.,
      28668., 29280., 33645., 34554., 35778., 36696., 37947., 38874., 40152.,
      41088., 34833., 35778., 37038., 37992., 39279., 40242., 41556., 42528.,
      36021., 37002., 38298., 39288., 40611., 41610., 42960., 43968., 37209.,
      38226., 39558., 40584., 41943., 42978., 44364., 45408., 22362., 23052.,
      23928., 24624., 25518., 26220., 27132., 27840., 11708., 12152., 12704.,
      13152., 13716., 14168., 14744., 15200., 15230., 15908., 16724., 17408.,
      18242., 18932., 19784., 20480., 15734., 16436., 17276., 17984., 18842.,
      19556., 20432., 21152., 16238., 16964., 17828., 18560., 19442., 20180.,
      21080., 21824., 16742., 17492., 18380., 19136., 20042., 20804., 21728.,
      22496., 9244.,  9752.,  10336., 10848., 11444., 11960., 12568., 13088.};
  const std::array<int, 4> in_shape = {{1, 6, 6, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x6x6x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      12261., 12522., 13098., 13368., 13971., 14250., 14880., 15168., 13449.,
      13746., 14358., 14664., 15303., 15618., 16284., 16608., 14637., 14970.,
      15618., 15960., 16635., 16986., 17688., 18048., 15825., 16194., 16878.,
      17256., 17967., 18354., 19092., 19488., 19389., 19866., 20658., 21144.,
      21963., 22458., 23304., 23808., 20577., 21090., 21918., 22440., 23295.,
      23826., 24708., 25248., 21765., 22314., 23178., 23736., 24627., 25194.,
      26112., 26688., 22953., 23538., 24438., 25032., 25959., 26562., 27516.,
      28128., 26517., 27210., 28218., 28920., 29955., 30666., 31728., 32448.,
      27705., 28434., 29478., 30216., 31287., 32034., 33132., 33888., 28893.,
      29658., 30738., 31512., 32619., 33402., 34536., 35328., 30081., 30882.,
      31998., 32808., 33951., 34770., 35940., 36768., 33645., 34554., 35778.,
      36696., 37947., 38874., 40152., 41088., 34833., 35778., 37038., 37992.,
      39279., 40242., 41556., 42528., 36021., 37002., 38298., 39288., 40611.,
      41610., 42960., 43968., 37209., 38226., 39558., 40584., 41943., 42978.,
      44364., 45408.};
  const std::array<int, 4> in_shape = {{1, 6, 6, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME1x6x6x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      7036.,  7096.,  7156.,  7216.,  7680.,  7744.,  7808.,  7872.,  8356.,
      8424.,  8492.,  8560.,  9064.,  9136.,  9208.,  9280.,  11062., 11164.,
      11266., 11368., 12028., 12136., 12244., 12352., 13042., 13156., 13270.,
      13384., 14104., 14224., 14344., 14464., 13198., 13324., 13450., 13576.,
      14260., 14392., 14524., 14656., 15370., 15508., 15646., 15784., 16528.,
      16672., 16816., 16960., 15334., 15484., 15634., 15784., 16492., 16648.,
      16804., 16960., 17698., 17860., 18022., 18184., 18952., 19120., 19288.,
      19456., 17470., 17644., 17818., 17992., 18724., 18904., 19084., 19264.,
      20026., 20212., 20398., 20584., 21376., 21568., 21760., 21952., 11260.,
      11384., 11508., 11632., 12096., 12224., 12352., 12480., 12964., 13096.,
      13228., 13360., 13864., 14000., 14136., 14272., 16530., 16692., 16854.,
      17016., 17640., 17808., 17976., 18144., 18798., 18972., 19146., 19320.,
      20004., 20184., 20364., 20544., 24261., 24522., 24783., 25044., 25926.,
      26196., 26466., 26736., 27663., 27942., 28221., 28500., 29472., 29760.,
      30048., 30336., 26601., 26898., 27195., 27492., 28410., 28716., 29022.,
      29328., 30291., 30606., 30921., 31236., 32244., 32568., 32892., 33216.,
      28941., 29274., 29607., 29940., 30894., 31236., 31578., 31920., 32919.,
      33270., 33621., 33972., 35016., 35376., 35736., 36096., 31281., 31650.,
      32019., 32388., 33378., 33756., 34134., 34512., 35547., 35934., 36321.,
      36708., 37788., 38184., 38580., 38976., 19410., 19668., 19926., 20184.,
      20808., 21072., 21336., 21600., 22254., 22524., 22794., 23064., 23748.,
      24024., 24300., 24576., 27042., 27348., 27654., 27960., 28728., 29040.,
      29352., 29664., 30462., 30780., 31098., 31416., 32244., 32568., 32892.,
      33216., 38301., 38778., 39255., 39732., 40830., 41316., 41802., 42288.,
      43431., 43926., 44421., 44916., 46104., 46608., 47112., 47616., 40641.,
      41154., 41667., 42180., 43314., 43836., 44358., 44880., 46059., 46590.,
      47121., 47652., 48876., 49416., 49956., 50496., 42981., 43530., 44079.,
      44628., 45798., 46356., 46914., 47472., 48687., 49254., 49821., 50388.,
      51648., 52224., 52800., 53376., 45321., 45906., 46491., 47076., 48282.,
      48876., 49470., 50064., 51315., 51918., 52521., 53124., 54420., 55032.,
      55644., 56256., 27618., 28020., 28422., 28824., 29592., 30000., 30408.,
      30816., 31614., 32028., 32442., 32856., 33684., 34104., 34524., 34944.,
      37554., 38004., 38454., 38904., 39816., 40272., 40728., 41184., 42126.,
      42588., 43050., 43512., 44484., 44952., 45420., 45888., 52341., 53034.,
      53727., 54420., 55734., 56436., 57138., 57840., 59199., 59910., 60621.,
      61332., 62736., 63456., 64176., 64896., 54681., 55410., 56139., 56868.,
      58218., 58956., 59694., 60432., 61827., 62574., 63321., 64068., 65508.,
      66264., 67020., 67776., 57021., 57786., 58551., 59316., 60702., 61476.,
      62250., 63024., 64455., 65238., 66021., 66804., 68280., 69072., 69864.,
      70656., 59361., 60162., 60963., 61764., 63186., 63996., 64806., 65616.,
      67083., 67902., 68721., 69540., 71052., 71880., 72708., 73536., 35826.,
      36372., 36918., 37464., 38376., 38928., 39480., 40032., 40974., 41532.,
      42090., 42648., 43620., 44184., 44748., 45312., 48066., 48660., 49254.,
      49848., 50904., 51504., 52104., 52704., 53790., 54396., 55002., 55608.,
      56724., 57336., 57948., 58560., 66381., 67290., 68199., 69108., 70638.,
      71556., 72474., 73392., 74967., 75894., 76821., 77748., 79368., 80304.,
      81240., 82176., 68721., 69666., 70611., 71556., 73122., 74076., 75030.,
      75984., 77595., 78558., 79521., 80484., 82140., 83112., 84084., 85056.,
      71061., 72042., 73023., 74004., 75606., 76596., 77586., 78576., 80223.,
      81222., 82221., 83220., 84912., 85920., 86928., 87936., 73401., 74418.,
      75435., 76452., 78090., 79116., 80142., 81168., 82851., 83886., 84921.,
      85956., 87684., 88728., 89772., 90816., 44034., 44724., 45414., 46104.,
      47160., 47856., 48552., 49248., 50334., 51036., 51738., 52440., 53556.,
      54264., 54972., 55680., 22972., 23416., 23860., 24304., 24960., 25408.,
      25856., 26304., 26980., 27432., 27884., 28336., 29032., 29488., 29944.,
      30400., 29782., 30460., 31138., 31816., 32764., 33448., 34132., 34816.,
      35794., 36484., 37174., 37864., 38872., 39568., 40264., 40960., 30766.,
      31468., 32170., 32872., 33844., 34552., 35260., 35968., 36970., 37684.,
      38398., 39112., 40144., 40864., 41584., 42304., 31750., 32476., 33202.,
      33928., 34924., 35656., 36388., 37120., 38146., 38884., 39622., 40360.,
      41416., 42160., 42904., 43648., 32734., 33484., 34234., 34984., 36004.,
      36760., 37516., 38272., 39322., 40084., 40846., 41608., 42688., 43456.,
      44224., 44992., 17980., 18488., 18996., 19504., 20160., 20672., 21184.,
      21696., 22372., 22888., 23404., 23920., 24616., 25136., 25656., 26176.};
  const std::array<int, 4> in_shape = {{1, 6, 6, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID1x6x6x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      24261., 24522., 24783., 25044., 25926., 26196., 26466., 26736., 27663.,
      27942., 28221., 28500., 29472., 29760., 30048., 30336., 26601., 26898.,
      27195., 27492., 28410., 28716., 29022., 29328., 30291., 30606., 30921.,
      31236., 32244., 32568., 32892., 33216., 28941., 29274., 29607., 29940.,
      30894., 31236., 31578., 31920., 32919., 33270., 33621., 33972., 35016.,
      35376., 35736., 36096., 31281., 31650., 32019., 32388., 33378., 33756.,
      34134., 34512., 35547., 35934., 36321., 36708., 37788., 38184., 38580.,
      38976., 38301., 38778., 39255., 39732., 40830., 41316., 41802., 42288.,
      43431., 43926., 44421., 44916., 46104., 46608., 47112., 47616., 40641.,
      41154., 41667., 42180., 43314., 43836., 44358., 44880., 46059., 46590.,
      47121., 47652., 48876., 49416., 49956., 50496., 42981., 43530., 44079.,
      44628., 45798., 46356., 46914., 47472., 48687., 49254., 49821., 50388.,
      51648., 52224., 52800., 53376., 45321., 45906., 46491., 47076., 48282.,
      48876., 49470., 50064., 51315., 51918., 52521., 53124., 54420., 55032.,
      55644., 56256., 52341., 53034., 53727., 54420., 55734., 56436., 57138.,
      57840., 59199., 59910., 60621., 61332., 62736., 63456., 64176., 64896.,
      54681., 55410., 56139., 56868., 58218., 58956., 59694., 60432., 61827.,
      62574., 63321., 64068., 65508., 66264., 67020., 67776., 57021., 57786.,
      58551., 59316., 60702., 61476., 62250., 63024., 64455., 65238., 66021.,
      66804., 68280., 69072., 69864., 70656., 59361., 60162., 60963., 61764.,
      63186., 63996., 64806., 65616., 67083., 67902., 68721., 69540., 71052.,
      71880., 72708., 73536., 66381., 67290., 68199., 69108., 70638., 71556.,
      72474., 73392., 74967., 75894., 76821., 77748., 79368., 80304., 81240.,
      82176., 68721., 69666., 70611., 71556., 73122., 74076., 75030., 75984.,
      77595., 78558., 79521., 80484., 82140., 83112., 84084., 85056., 71061.,
      72042., 73023., 74004., 75606., 76596., 77586., 78576., 80223., 81222.,
      82221., 83220., 84912., 85920., 86928., 87936., 73401., 74418., 75435.,
      76452., 78090., 79116., 80142., 81168., 82851., 83886., 84921., 85956.,
      87684., 88728., 89772., 90816.};
  const std::array<int, 4> in_shape = {{1, 6, 6, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x4x4x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      111.,  178.,  217.,  145.,  231.,  348.,  393.,  252.,  363.,  528.,
      573.,  360.,  197.,  274.,  295.,  175.,  559.,  802.,  841.,  529.,
      759.,  1068., 1113., 684.,  891.,  1248., 1293., 792.,  453.,  610.,
      631.,  367.,  1007., 1426., 1465., 913.,  1287., 1788., 1833., 1116.,
      1419., 1968., 2013., 1224., 709.,  946.,  967.,  559.};
  const std::array<int, 4> in_shape = {{3, 4, 4, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x4x4x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {348.,  393.,  528.,  573.,
                                         1068., 1113., 1248., 1293.,
                                         1788., 1833., 1968., 2013.};
  const std::array<int, 4> in_shape = {{3, 4, 4, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x4x4x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      208.,  222.,  332.,  356.,  404.,  434.,  268.,  290.,  429.,  462.,
      642.,  696.,  723.,  786.,  459.,  504.,  669.,  726.,  966.,  1056.,
      1047., 1146., 651.,  720.,  348.,  394.,  476.,  548.,  512.,  590.,
      296.,  350.,  1040., 1118., 1484., 1604., 1556., 1682., 972.,  1058.,
      1389., 1518., 1938., 2136., 2019., 2226., 1227., 1368., 1629., 1782.,
      2262., 2496., 2343., 2586., 1419., 1584., 796.,  906.,  1052., 1220.,
      1088., 1262., 616.,  734.,  1872., 2014., 2636., 2852., 2708., 2930.,
      1676., 1826., 2349., 2574., 3234., 3576., 3315., 3666., 1995., 2232.,
      2589., 2838., 3558., 3936., 3639., 4026., 2187., 2448., 1244., 1418.,
      1628., 1892., 1664., 1934., 936.,  1118.};
  const std::array<int, 4> in_shape = {{3, 4, 4, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x4x4x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      642.,  696.,  723.,  786.,  966.,  1056., 1047., 1146.,
      1938., 2136., 2019., 2226., 2262., 2496., 2343., 2586.,
      3234., 3576., 3315., 3666., 3558., 3936., 3639., 4026.};
  const std::array<int, 4> in_shape = {{3, 4, 4, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x4x4x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      402.,  416.,  430.,  444.,  640.,  664.,  688.,  712.,  778.,  808.,
      838.,  868.,  514.,  536.,  558.,  580.,  825.,  858.,  891.,  924.,
      1230., 1284., 1338., 1392., 1383., 1446., 1509., 1572., 873.,  918.,
      963.,  1008., 1281., 1338., 1395., 1452., 1842., 1932., 2022., 2112.,
      1995., 2094., 2193., 2292., 1233., 1302., 1371., 1440., 650.,  696.,
      742.,  788.,  880.,  952.,  1024., 1096., 946.,  1024., 1102., 1180.,
      538.,  592.,  646.,  700.,  2002., 2080., 2158., 2236., 2848., 2968.,
      3088., 3208., 2986., 3112., 3238., 3364., 1858., 1944., 2030., 2116.,
      2649., 2778., 2907., 3036., 3678., 3876., 4074., 4272., 3831., 4038.,
      4245., 4452., 2313., 2454., 2595., 2736., 3105., 3258., 3411., 3564.,
      4290., 4524., 4758., 4992., 4443., 4686., 4929., 5172., 2673., 2838.,
      3003., 3168., 1482., 1592., 1702., 1812., 1936., 2104., 2272., 2440.,
      2002., 2176., 2350., 2524., 1114., 1232., 1350., 1468., 3602., 3744.,
      3886., 4028., 5056., 5272., 5488., 5704., 5194., 5416., 5638., 5860.,
      3202., 3352., 3502., 3652., 4473., 4698., 4923., 5148., 6126., 6468.,
      6810., 7152., 6279., 6630., 6981., 7332., 3753., 3990., 4227., 4464.,
      4929., 5178., 5427., 5676., 6738., 7116., 7494., 7872., 6891., 7278.,
      7665., 8052., 4113., 4374., 4635., 4896., 2314., 2488., 2662., 2836.,
      2992., 3256., 3520., 3784., 3058., 3328., 3598., 3868., 1690., 1872.,
      2054., 2236.};
  const std::array<int, 4> in_shape = {{3, 4, 4, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x4x4x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1230., 1284., 1338., 1392., 1383., 1446., 1509., 1572., 1842., 1932.,
      2022., 2112., 1995., 2094., 2193., 2292., 3678., 3876., 4074., 4272.,
      3831., 4038., 4245., 4452., 4290., 4524., 4758., 4992., 4443., 4686.,
      4929., 5172., 6126., 6468., 6810., 7152., 6279., 6630., 6981., 7332.,
      6738., 7116., 7494., 7872., 6891., 7278., 7665., 8052.};
  const std::array<int, 4> in_shape = {{3, 4, 4, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x4x4x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      364.,  444.,  592.,  712.,  736.,  868.,  492.,  580.,  798.,  924.,
      1203., 1392., 1365., 1572., 870.,  1008., 1278., 1452., 1851., 2112.,
      2013., 2292., 1254., 1440., 668.,  788.,  916.,  1096., 988.,  1180.,
      572.,  700.,  2028., 2236., 2896., 3208., 3040., 3364., 1900., 2116.,
      2718., 3036., 3795., 4272., 3957., 4452., 2406., 2736., 3198., 3564.,
      4443., 4992., 4605., 5172., 2790., 3168., 1564., 1812., 2068., 2440.,
      2140., 2524., 1212., 1468., 3692., 4028., 5200., 5704., 5344., 5860.,
      3308., 3652., 4638., 5148., 6387., 7152., 6549., 7332., 3942., 4464.,
      5118., 5676., 7035., 7872., 7197., 8052., 4326., 4896., 2460., 2836.,
      3220., 3784., 3292., 3868., 1852., 2236.};
  const std::array<int, 4> in_shape = {{3, 4, 4, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x4x4x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1203., 1392., 1365., 1572., 1851., 2112., 2013., 2292.,
      3795., 4272., 3957., 4452., 4443., 4992., 4605., 5172.,
      6387., 7152., 6549., 7332., 7035., 7872., 7197., 8052.};
  const std::array<int, 4> in_shape = {{3, 4, 4, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x4x4x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      704.,   728.,   860.,   888.,   1142.,  1184.,  1376.,  1424.,  1418.,
      1472.,  1676.,  1736.,  944.,   984.,   1116.,  1160.,  1536.,  1596.,
      1782.,  1848.,  2307.,  2406.,  2676.,  2784.,  2613.,  2730.,  3018.,
      3144.,  1656.,  1740.,  1926.,  2016.,  2448.,  2556.,  2790.,  2904.,
      3531.,  3702.,  4044.,  4224.,  3837.,  4026.,  4386.,  4584.,  2376.,
      2508.,  2742.,  2880.,  1248.,  1336.,  1484.,  1576.,  1694.,  1832.,
      2048.,  2192.,  1826.,  1976.,  2204.,  2360.,  1040.,  1144.,  1292.,
      1400.,  3904.,  4056.,  4316.,  4472.,  5558.,  5792.,  6176.,  6416.,
      5834.,  6080.,  6476.,  6728.,  3632.,  3800.,  4060.,  4232.,  5184.,
      5436.,  5814.,  6072.,  7203.,  7590.,  8148.,  8544.,  7509.,  7914.,
      8490.,  8904.,  4536.,  4812.,  5190.,  5472.,  6096.,  6396.,  6822.,
      7128.,  8427.,  8886.,  9516.,  9984.,  8733.,  9210.,  9858.,  10344.,
      5256.,  5580.,  6006.,  6336.,  2912.,  3128.,  3404.,  3624.,  3806.,
      4136.,  4544.,  4880.,  3938.,  4280.,  4700.,  5048.,  2192.,  2424.,
      2700.,  2936.,  7104.,  7384.,  7772.,  8056.,  9974.,  10400., 10976.,
      11408., 10250., 10688., 11276., 11720., 6320.,  6616.,  7004.,  7304.,
      8832.,  9276.,  9846.,  10296., 12099., 12774., 13620., 14304., 12405.,
      13098., 13962., 14664., 7416.,  7884.,  8454.,  8928.,  9744.,  10236.,
      10854., 11352., 13323., 14070., 14988., 15744., 13629., 14394., 15330.,
      16104., 8136.,  8652.,  9270.,  9792.,  4576.,  4920.,  5324.,  5672.,
      5918.,  6440.,  7040.,  7568.,  6050.,  6584.,  7196.,  7736.,  3344.,
      3704.,  4108.,  4472.};
  const std::array<int, 4> in_shape = {{3, 4, 4, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x4x4x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2307.,  2406.,  2676.,  2784.,  2613.,  2730.,  3018.,  3144.,
      3531.,  3702.,  4044.,  4224.,  3837.,  4026.,  4386.,  4584.,
      7203.,  7590.,  8148.,  8544.,  7509.,  7914.,  8490.,  8904.,
      8427.,  8886.,  9516.,  9984.,  8733.,  9210.,  9858.,  10344.,
      12099., 12774., 13620., 14304., 12405., 13098., 13962., 14664.,
      13323., 14070., 14988., 15744., 13629., 14394., 15330., 16104.};
  const std::array<int, 4> in_shape = {{3, 4, 4, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x4x4x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1384.,  1408.,  1432.,  1456.,  1692.,  1720.,  1748.,  1776.,  2242.,
      2284.,  2326.,  2368.,  2704.,  2752.,  2800.,  2848.,  2782.,  2836.,
      2890.,  2944.,  3292.,  3352.,  3412.,  3472.,  1848.,  1888.,  1928.,
      1968.,  2188.,  2232.,  2276.,  2320.,  3012.,  3072.,  3132.,  3192.,
      3498.,  3564.,  3630.,  3696.,  4515.,  4614.,  4713.,  4812.,  5244.,
      5352.,  5460.,  5568.,  5109.,  5226.,  5343.,  5460.,  5910.,  6036.,
      6162.,  6288.,  3228.,  3312.,  3396.,  3480.,  3762.,  3852.,  3942.,
      4032.,  4788.,  4896.,  5004.,  5112.,  5466.,  5580.,  5694.,  5808.,
      6891.,  7062.,  7233.,  7404.,  7908.,  8088.,  8268.,  8448.,  7485.,
      7674.,  7863.,  8052.,  8574.,  8772.,  8970.,  9168.,  4620.,  4752.,
      4884.,  5016.,  5346.,  5484.,  5622.,  5760.,  2408.,  2496.,  2584.,
      2672.,  2876.,  2968.,  3060.,  3152.,  3250.,  3388.,  3526.,  3664.,
      3952.,  4096.,  4240.,  4384.,  3502.,  3652.,  3802.,  3952.,  4252.,
      4408.,  4564.,  4720.,  1976.,  2080.,  2184.,  2288.,  2476.,  2584.,
      2692.,  2800.,  7656.,  7808.,  7960.,  8112.,  8476.,  8632.,  8788.,
      8944.,  10882., 11116., 11350., 11584., 12112., 12352., 12592., 12832.,
      11422., 11668., 11914., 12160., 12700., 12952., 13204., 13456., 7096.,
      7264.,  7432.,  7600.,  7948.,  8120.,  8292.,  8464.,  10116., 10368.,
      10620., 10872., 11370., 11628., 11886., 12144., 14019., 14406., 14793.,
      15180., 15900., 16296., 16692., 17088., 14613., 15018., 15423., 15828.,
      16566., 16980., 17394., 17808., 8796.,  9072.,  9348.,  9624.,  10098.,
      10380., 10662., 10944., 11892., 12192., 12492., 12792., 13338., 13644.,
      13950., 14256., 16395., 16854., 17313., 17772., 18564., 19032., 19500.,
      19968., 16989., 17466., 17943., 18420., 19230., 19716., 20202., 20688.,
      10188., 10512., 10836., 11160., 11682., 12012., 12342., 12672., 5608.,
      5824.,  6040.,  6256.,  6588.,  6808.,  7028.,  7248.,  7282.,  7612.,
      7942.,  8272.,  8752.,  9088.,  9424.,  9760.,  7534.,  7876.,  8218.,
      8560.,  9052.,  9400.,  9748.,  10096., 4152.,  4384.,  4616.,  4848.,
      5164.,  5400.,  5636.,  5872.,  13928., 14208., 14488., 14768., 15260.,
      15544., 15828., 16112., 19522., 19948., 20374., 20800., 21520., 21952.,
      22384., 22816., 20062., 20500., 20938., 21376., 22108., 22552., 22996.,
      23440., 12344., 12640., 12936., 13232., 13708., 14008., 14308., 14608.,
      17220., 17664., 18108., 18552., 19242., 19692., 20142., 20592., 23523.,
      24198., 24873., 25548., 26556., 27240., 27924., 28608., 24117., 24810.,
      25503., 26196., 27222., 27924., 28626., 29328., 14364., 14832., 15300.,
      15768., 16434., 16908., 17382., 17856., 18996., 19488., 19980., 20472.,
      21210., 21708., 22206., 22704., 25899., 26646., 27393., 28140., 29220.,
      29976., 30732., 31488., 26493., 27258., 28023., 28788., 29886., 30660.,
      31434., 32208., 15756., 16272., 16788., 17304., 18018., 18540., 19062.,
      19584., 8808.,  9152.,  9496.,  9840.,  10300., 10648., 10996., 11344.,
      11314., 11836., 12358., 12880., 13552., 14080., 14608., 15136., 11566.,
      12100., 12634., 13168., 13852., 14392., 14932., 15472., 6328.,  6688.,
      7048.,  7408.,  7852.,  8216.,  8580.,  8944.};
  const std::array<int, 4> in_shape = {{3, 4, 4, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x4x4x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4515.,  4614.,  4713.,  4812.,  5244.,  5352.,  5460.,  5568.,  5109.,
      5226.,  5343.,  5460.,  5910.,  6036.,  6162.,  6288.,  6891.,  7062.,
      7233.,  7404.,  7908.,  8088.,  8268.,  8448.,  7485.,  7674.,  7863.,
      8052.,  8574.,  8772.,  8970.,  9168.,  14019., 14406., 14793., 15180.,
      15900., 16296., 16692., 17088., 14613., 15018., 15423., 15828., 16566.,
      16980., 17394., 17808., 16395., 16854., 17313., 17772., 18564., 19032.,
      19500., 19968., 16989., 17466., 17943., 18420., 19230., 19716., 20202.,
      20688., 23523., 24198., 24873., 25548., 26556., 27240., 27924., 28608.,
      24117., 24810., 25503., 26196., 27222., 27924., 28626., 29328., 25899.,
      26646., 27393., 28140., 29220., 29976., 30732., 31488., 26493., 27258.,
      28023., 28788., 29886., 30660., 31434., 32208.};
  const std::array<int, 4> in_shape = {{3, 4, 4, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x4x4x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1308.,  1456.,  1612.,  1776.,  2146.,  2368.,  2602.,  2848.,  2698.,
      2944.,  3202.,  3472.,  1804.,  1968.,  2140.,  2320.,  2958.,  3192.,
      3438.,  3696.,  4461.,  4812.,  5181.,  5568.,  5073.,  5460.,  5865.,
      6288.,  3222.,  3480.,  3750.,  4032.,  4782.,  5112.,  5454.,  5808.,
      6909.,  7404.,  7917.,  8448.,  7521.,  8052.,  8601.,  9168.,  4662.,
      5016.,  5382.,  5760.,  2444.,  2672.,  2908.,  3152.,  3322.,  3664.,
      4018.,  4384.,  3586.,  3952.,  4330.,  4720.,  2044.,  2288.,  2540.,
      2800.,  7708.,  8112.,  8524.,  8944.,  10978., 11584., 12202., 12832.,
      11530., 12160., 12802., 13456., 7180.,  7600.,  8028.,  8464.,  10254.,
      10872., 11502., 12144., 14253., 15180., 16125., 17088., 14865., 15828.,
      16809., 17808., 8982.,  9624.,  10278., 10944., 12078., 12792., 13518.,
      14256., 16701., 17772., 18861., 19968., 17313., 18420., 19545., 20688.,
      10422., 11160., 11910., 12672., 5772.,  6256.,  6748.,  7248.,  7546.,
      8272.,  9010.,  9760.,  7810.,  8560.,  9322.,  10096., 4348.,  4848.,
      5356.,  5872.,  14108., 14768., 15436., 16112., 19810., 20800., 21802.,
      22816., 20362., 21376., 22402., 23440., 12556., 13232., 13916., 14608.,
      17550., 18552., 19566., 20592., 24045., 25548., 27069., 28608., 24657.,
      26196., 27753., 29328., 14742., 15768., 16806., 17856., 19374., 20472.,
      21582., 22704., 26493., 28140., 29805., 31488., 27105., 28788., 30489.,
      32208., 16182., 17304., 18438., 19584., 9100.,  9840.,  10588., 11344.,
      11770., 12880., 14002., 15136., 12034., 13168., 14314., 15472., 6652.,
      7408.,  8172.,  8944.};
  const std::array<int, 4> in_shape = {{3, 4, 4, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x4x4x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4461.,  4812.,  5181.,  5568.,  5073.,  5460.,  5865.,  6288.,
      6909.,  7404.,  7917.,  8448.,  7521.,  8052.,  8601.,  9168.,
      14253., 15180., 16125., 17088., 14865., 15828., 16809., 17808.,
      16701., 17772., 18861., 19968., 17313., 18420., 19545., 20688.,
      24045., 25548., 27069., 28608., 24657., 26196., 27753., 29328.,
      26493., 28140., 29805., 31488., 27105., 28788., 30489., 32208.};
  const std::array<int, 4> in_shape = {{3, 4, 4, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x4x4x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2572.,  2616.,  2864.,  2912.,  3172.,  3224.,  3496.,  3552.,  4214.,
      4292.,  4652.,  4736.,  5114.,  5204.,  5600.,  5696.,  5294.,  5396.,
      5780.,  5888.,  6290.,  6404.,  6824.,  6944.,  3532.,  3608.,  3856.,
      3936.,  4196.,  4280.,  4552.,  4640.,  5802.,  5916.,  6264.,  6384.,
      6750.,  6876.,  7260.,  7392.,  8733.,  8922.,  9426.,  9624.,  10155.,
      10362., 10920., 11136., 9921.,  10146., 10686., 10920., 11487., 11730.,
      12324., 12576., 6282.,  6444.,  6792.,  6960.,  7326.,  7500.,  7884.,
      8064.,  9354.,  9564.,  10008., 10224., 10686., 10908., 11388., 11616.,
      13485., 13818., 14466., 14808., 15483., 15834., 16536., 16896., 14673.,
      15042., 15726., 16104., 16815., 17202., 17940., 18336., 9066.,  9324.,
      9768.,  10032., 10494., 10764., 11244., 11520., 4716.,  4888.,  5168.,
      5344.,  5636.,  5816.,  6120.,  6304.,  6374.,  6644.,  7052.,  7328.,
      7754.,  8036.,  8480.,  8768.,  6878.,  7172.,  7604.,  7904.,  8354.,
      8660.,  9128.,  9440.,  3884.,  4088.,  4368.,  4576.,  4868.,  5080.,
      5384.,  5600.,  15116., 15416., 15920., 16224., 16740., 17048., 17576.,
      17888., 21494., 21956., 22700., 23168., 23930., 24404., 25184., 25664.,
      22574., 23060., 23828., 24320., 25106., 25604., 26408., 26912., 14028.,
      14360., 14864., 15200., 15716., 16056., 16584., 16928., 20010., 20508.,
      21240., 21744., 22494., 23004., 23772., 24288., 27741., 28506., 29586.,
      30360., 31467., 32250., 33384., 34176., 28929., 29730., 30846., 31656.,
      32799., 33618., 34788., 35616., 17418., 17964., 18696., 19248., 19998.,
      20556., 21324., 21888., 23562., 24156., 24984., 25584., 26430., 27036.,
      27900., 28512., 32493., 33402., 34626., 35544., 36795., 37722., 39000.,
      39936., 33681., 34626., 35886., 36840., 38127., 39090., 40404., 41376.,
      20202., 20844., 21672., 22320., 23166., 23820., 24684., 25344., 11116.,
      11544., 12080., 12512., 13060., 13496., 14056., 14496., 14438., 15092.,
      15884., 16544., 17354., 18020., 18848., 19520., 14942., 15620., 16436.,
      17120., 17954., 18644., 19496., 20192., 8236.,  8696.,  9232.,  9696.,
      10244., 10712., 11272., 11744., 27660., 28216., 28976., 29536., 30308.,
      30872., 31656., 32224., 38774., 39620., 40748., 41600., 42746., 43604.,
      44768., 45632., 39854., 40724., 41876., 42752., 43922., 44804., 45992.,
      46880., 24524., 25112., 25872., 26464., 27236., 27832., 28616., 29216.,
      34218., 35100., 36216., 37104., 38238., 39132., 40284., 41184., 46749.,
      48090., 49746., 51096., 52779., 54138., 55848., 57216., 47937., 49314.,
      51006., 52392., 54111., 55506., 57252., 58656., 28554., 29484., 30600.,
      31536., 32670., 33612., 34764., 35712., 37770., 38748., 39960., 40944.,
      42174., 43164., 44412., 45408., 51501., 52986., 54786., 56280., 58107.,
      59610., 61464., 62976., 52689., 54210., 56046., 57576., 59439., 60978.,
      62868., 64416., 31338., 32364., 33576., 34608., 35838., 36876., 38124.,
      39168., 17516., 18200., 18992., 19680., 20484., 21176., 21992., 22688.,
      22502., 23540., 24716., 25760., 26954., 28004., 29216., 30272., 23006.,
      24068., 25268., 26336., 27554., 28628., 29864., 30944., 12588., 13304.,
      14096., 14816., 15620., 16344., 17160., 17888.};
  const std::array<int, 4> in_shape = {{3, 4, 4, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x4x4x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      8733.,  8922.,  9426.,  9624.,  10155., 10362., 10920., 11136., 9921.,
      10146., 10686., 10920., 11487., 11730., 12324., 12576., 13485., 13818.,
      14466., 14808., 15483., 15834., 16536., 16896., 14673., 15042., 15726.,
      16104., 16815., 17202., 17940., 18336., 27741., 28506., 29586., 30360.,
      31467., 32250., 33384., 34176., 28929., 29730., 30846., 31656., 32799.,
      33618., 34788., 35616., 32493., 33402., 34626., 35544., 36795., 37722.,
      39000., 39936., 33681., 34626., 35886., 36840., 38127., 39090., 40404.,
      41376., 46749., 48090., 49746., 51096., 52779., 54138., 55848., 57216.,
      47937., 49314., 51006., 52392., 54111., 55506., 57252., 58656., 51501.,
      52986., 54786., 56280., 58107., 59610., 61464., 62976., 52689., 54210.,
      56046., 57576., 59439., 60978., 62868., 64416.};
  const std::array<int, 4> in_shape = {{3, 4, 4, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x4x4x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5100.,   5144.,   5188.,   5232.,   5680.,   5728.,   5776.,   5824.,
      6292.,   6344.,   6396.,   6448.,   6936.,   6992.,   7048.,   7104.,
      8350.,   8428.,   8506.,   8584.,   9220.,   9304.,   9388.,   9472.,
      10138.,  10228.,  10318.,  10408.,  11104.,  11200.,  11296.,  11392.,
      10486.,  10588.,  10690.,  10792.,  11452.,  11560.,  11668.,  11776.,
      12466.,  12580.,  12694.,  12808.,  13528.,  13648.,  13768.,  13888.,
      6988.,   7064.,   7140.,   7216.,   7632.,   7712.,   7792.,   7872.,
      8308.,   8392.,   8476.,   8560.,   9016.,   9104.,   9192.,   9280.,
      11490.,  11604.,  11718.,  11832.,  12408.,  12528.,  12648.,  12768.,
      13374.,  13500.,  13626.,  13752.,  14388.,  14520.,  14652.,  14784.,
      17277.,  17466.,  17655.,  17844.,  18654.,  18852.,  19050.,  19248.,
      20103.,  20310.,  20517.,  20724.,  21624.,  21840.,  22056.,  22272.,
      19617.,  19842.,  20067.,  20292.,  21138.,  21372.,  21606.,  21840.,
      22731.,  22974.,  23217.,  23460.,  24396.,  24648.,  24900.,  25152.,
      12402.,  12564.,  12726.,  12888.,  13416.,  13584.,  13752.,  13920.,
      14478.,  14652.,  14826.,  15000.,  15588.,  15768.,  15948.,  16128.,
      18498.,  18708.,  18918.,  19128.,  19800.,  20016.,  20232.,  20448.,
      21150.,  21372.,  21594.,  21816.,  22548.,  22776.,  23004.,  23232.,
      26637.,  26970.,  27303.,  27636.,  28590.,  28932.,  29274.,  29616.,
      30615.,  30966.,  31317.,  31668.,  32712.,  33072.,  33432.,  33792.,
      28977.,  29346.,  29715.,  30084.,  31074.,  31452.,  31830.,  32208.,
      33243.,  33630.,  34017.,  34404.,  35484.,  35880.,  36276.,  36672.,
      17874.,  18132.,  18390.,  18648.,  19272.,  19536.,  19800.,  20064.,
      20718.,  20988.,  21258.,  21528.,  22212.,  22488.,  22764.,  23040.,
      9260.,   9432.,   9604.,   9776.,   10160.,  10336.,  10512.,  10688.,
      11092.,  11272.,  11452.,  11632.,  12056.,  12240.,  12424.,  12608.,
      12478.,  12748.,  13018.,  13288.,  13828.,  14104.,  14380.,  14656.,
      15226.,  15508.,  15790.,  16072.,  16672.,  16960.,  17248.,  17536.,
      13462.,  13756.,  14050.,  14344.,  14908.,  15208.,  15508.,  15808.,
      16402.,  16708.,  17014.,  17320.,  17944.,  18256.,  18568.,  18880.,
      7564.,   7768.,   7972.,   8176.,   8528.,   8736.,   8944.,   9152.,
      9524.,   9736.,   9948.,   10160.,  10552.,  10768.,  10984.,  11200.,
      29932.,  30232.,  30532.,  30832.,  31536.,  31840.,  32144.,  32448.,
      33172.,  33480.,  33788.,  34096.,  34840.,  35152.,  35464.,  35776.,
      42526.,  42988.,  43450.,  43912.,  44932.,  45400.,  45868.,  46336.,
      47386.,  47860.,  48334.,  48808.,  49888.,  50368.,  50848.,  51328.,
      44662.,  45148.,  45634.,  46120.,  47164.,  47656.,  48148.,  48640.,
      49714.,  50212.,  50710.,  51208.,  52312.,  52816.,  53320.,  53824.,
      27724.,  28056.,  28388.,  28720.,  29392.,  29728.,  30064.,  30400.,
      31092.,  31432.,  31772.,  32112.,  32824.,  33168.,  33512.,  33856.,
      39522.,  40020.,  40518.,  41016.,  41976.,  42480.,  42984.,  43488.,
      44478.,  44988.,  45498.,  46008.,  47028.,  47544.,  48060.,  48576.,
      54717.,  55482.,  56247.,  57012.,  58398.,  59172.,  59946.,  60720.,
      62151.,  62934.,  63717.,  64500.,  65976.,  66768.,  67560.,  68352.,
      57057.,  57858.,  58659.,  59460.,  60882.,  61692.,  62502.,  63312.,
      64779.,  65598.,  66417.,  67236.,  68748.,  69576.,  70404.,  71232.,
      34290.,  34836.,  35382.,  35928.,  36840.,  37392.,  37944.,  38496.,
      39438.,  39996.,  40554.,  41112.,  42084.,  42648.,  43212.,  43776.,
      46530.,  47124.,  47718.,  48312.,  49368.,  49968.,  50568.,  51168.,
      52254.,  52860.,  53466.,  54072.,  55188.,  55800.,  56412.,  57024.,
      64077.,  64986.,  65895.,  66804.,  68334.,  69252.,  70170.,  71088.,
      72663.,  73590.,  74517.,  75444.,  77064.,  78000.,  78936.,  79872.,
      66417.,  67362.,  68307.,  69252.,  70818.,  71772.,  72726.,  73680.,
      75291.,  76254.,  77217.,  78180.,  79836.,  80808.,  81780.,  82752.,
      39762.,  40404.,  41046.,  41688.,  42696.,  43344.,  43992.,  44640.,
      45678.,  46332.,  46986.,  47640.,  48708.,  49368.,  50028.,  50688.,
      21804.,  22232.,  22660.,  23088.,  23728.,  24160.,  24592.,  25024.,
      25684.,  26120.,  26556.,  26992.,  27672.,  28112.,  28552.,  28992.,
      28222.,  28876.,  29530.,  30184.,  31108.,  31768.,  32428.,  33088.,
      34042.,  34708.,  35374.,  36040.,  37024.,  37696.,  38368.,  39040.,
      29206.,  29884.,  30562.,  31240.,  32188.,  32872.,  33556.,  34240.,
      35218.,  35908.,  36598.,  37288.,  38296.,  38992.,  39688.,  40384.,
      16012.,  16472.,  16932.,  17392.,  18000.,  18464.,  18928.,  19392.,
      20020.,  20488.,  20956.,  21424.,  22072.,  22544.,  23016.,  23488.,
      54764.,  55320.,  55876.,  56432.,  57392.,  57952.,  58512.,  59072.,
      60052.,  60616.,  61180.,  61744.,  62744.,  63312.,  63880.,  64448.,
      76702.,  77548.,  78394.,  79240.,  80644.,  81496.,  82348.,  83200.,
      84634.,  85492.,  86350.,  87208.,  88672.,  89536.,  90400.,  91264.,
      78838.,  79708.,  80578.,  81448.,  82876.,  83752.,  84628.,  85504.,
      86962.,  87844.,  88726.,  89608.,  91096.,  91984.,  92872.,  93760.,
      48460.,  49048.,  49636.,  50224.,  51152.,  51744.,  52336.,  52928.,
      53876.,  54472.,  55068.,  55664.,  56632.,  57232.,  57832.,  58432.,
      67554.,  68436.,  69318.,  70200.,  71544.,  72432.,  73320.,  74208.,
      75582.,  76476.,  77370.,  78264.,  79668.,  80568.,  81468.,  82368.,
      92157.,  93498.,  94839.,  96180.,  98142.,  99492.,  100842., 102192.,
      104199., 105558., 106917., 108276., 110328., 111696., 113064., 114432.,
      94497.,  95874.,  97251.,  98628.,  100626., 102012., 103398., 104784.,
      106827., 108222., 109617., 111012., 113100., 114504., 115908., 117312.,
      56178.,  57108.,  58038.,  58968.,  60264.,  61200.,  62136.,  63072.,
      64398.,  65340.,  66282.,  67224.,  68580.,  69528.,  70476.,  71424.,
      74562.,  75540.,  76518.,  77496.,  78936.,  79920.,  80904.,  81888.,
      83358.,  84348.,  85338.,  86328.,  87828.,  88824.,  89820.,  90816.,
      101517., 103002., 104487., 105972., 108078., 109572., 111066., 112560.,
      114711., 116214., 117717., 119220., 121416., 122928., 124440., 125952.,
      103857., 105378., 106899., 108420., 110562., 112092., 113622., 115152.,
      117339., 118878., 120417., 121956., 124188., 125736., 127284., 128832.,
      61650.,  62676.,  63702.,  64728.,  66120.,  67152.,  68184.,  69216.,
      70638.,  71676.,  72714.,  73752.,  75204.,  76248.,  77292.,  78336.,
      34348.,  35032.,  35716.,  36400.,  37296.,  37984.,  38672.,  39360.,
      40276.,  40968.,  41660.,  42352.,  43288.,  43984.,  44680.,  45376.,
      43966.,  45004.,  46042.,  47080.,  48388.,  49432.,  50476.,  51520.,
      52858.,  53908.,  54958.,  56008.,  57376.,  58432.,  59488.,  60544.,
      44950.,  46012.,  47074.,  48136.,  49468.,  50536.,  51604.,  52672.,
      54034.,  55108.,  56182.,  57256.,  58648.,  59728.,  60808.,  61888.,
      24460.,  25176.,  25892.,  26608.,  27472.,  28192.,  28912.,  29632.,
      30516.,  31240.,  31964.,  32688.,  33592.,  34320.,  35048.,  35776.};
  const std::array<int, 4> in_shape = {{3, 4, 4, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x4x4x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      17277.,  17466.,  17655.,  17844.,  18654.,  18852.,  19050.,  19248.,
      20103.,  20310.,  20517.,  20724.,  21624.,  21840.,  22056.,  22272.,
      19617.,  19842.,  20067.,  20292.,  21138.,  21372.,  21606.,  21840.,
      22731.,  22974.,  23217.,  23460.,  24396.,  24648.,  24900.,  25152.,
      26637.,  26970.,  27303.,  27636.,  28590.,  28932.,  29274.,  29616.,
      30615.,  30966.,  31317.,  31668.,  32712.,  33072.,  33432.,  33792.,
      28977.,  29346.,  29715.,  30084.,  31074.,  31452.,  31830.,  32208.,
      33243.,  33630.,  34017.,  34404.,  35484.,  35880.,  36276.,  36672.,
      54717.,  55482.,  56247.,  57012.,  58398.,  59172.,  59946.,  60720.,
      62151.,  62934.,  63717.,  64500.,  65976.,  66768.,  67560.,  68352.,
      57057.,  57858.,  58659.,  59460.,  60882.,  61692.,  62502.,  63312.,
      64779.,  65598.,  66417.,  67236.,  68748.,  69576.,  70404.,  71232.,
      64077.,  64986.,  65895.,  66804.,  68334.,  69252.,  70170.,  71088.,
      72663.,  73590.,  74517.,  75444.,  77064.,  78000.,  78936.,  79872.,
      66417.,  67362.,  68307.,  69252.,  70818.,  71772.,  72726.,  73680.,
      75291.,  76254.,  77217.,  78180.,  79836.,  80808.,  81780.,  82752.,
      92157.,  93498.,  94839.,  96180.,  98142.,  99492.,  100842., 102192.,
      104199., 105558., 106917., 108276., 110328., 111696., 113064., 114432.,
      94497.,  95874.,  97251.,  98628.,  100626., 102012., 103398., 104784.,
      106827., 108222., 109617., 111012., 113100., 114504., 115908., 117312.,
      101517., 103002., 104487., 105972., 108078., 109572., 111066., 112560.,
      114711., 116214., 117717., 119220., 121416., 122928., 124440., 125952.,
      103857., 105378., 106899., 108420., 110562., 112092., 113622., 115152.,
      117339., 118878., 120417., 121956., 124188., 125736., 127284., 128832.};
  const std::array<int, 4> in_shape = {{3, 4, 4, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x4x5x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      128.,  202.,  241.,  280.,  184.,  276.,  411.,  456.,  501.,  318.,
      441.,  636.,  681.,  726.,  453.,  240.,  331.,  352.,  373.,  220.,
      688.,  982.,  1021., 1060., 664.,  936.,  1311., 1356., 1401., 858.,
      1101., 1536., 1581., 1626., 993.,  560.,  751.,  772.,  793.,  460.,
      1248., 1762., 1801., 1840., 1144., 1596., 2211., 2256., 2301., 1398.,
      1761., 2436., 2481., 2526., 1533., 880.,  1171., 1192., 1213., 700.};
  const std::array<int, 4> in_shape = {{3, 4, 5, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x4x5x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      411.,  456.,  501.,  636.,  681.,  726.,  1311., 1356., 1401.,
      1536., 1581., 1626., 2211., 2256., 2301., 2436., 2481., 2526.};
  const std::array<int, 4> in_shape = {{3, 4, 5, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x4x5x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      240.,  256.,  377.,  404.,  449.,  482.,  521.,  560.,  340.,  368.,
      513.,  552.,  759.,  822.,  840.,  912.,  921.,  1002., 579.,  636.,
      813.,  882.,  1164., 1272., 1245., 1362., 1326., 1452., 819.,  906.,
      424.,  480.,  575.,  662.,  611.,  704.,  647.,  746.,  372.,  440.,
      1280., 1376., 1817., 1964., 1889., 2042., 1961., 2120., 1220., 1328.,
      1713., 1872., 2379., 2622., 2460., 2712., 2541., 2802., 1539., 1716.,
      2013., 2202., 2784., 3072., 2865., 3162., 2946., 3252., 1779., 1986.,
      984.,  1120., 1295., 1502., 1331., 1544., 1367., 1586., 772.,  920.,
      2320., 2496., 3257., 3524., 3329., 3602., 3401., 3680., 2100., 2288.,
      2913., 3192., 3999., 4422., 4080., 4512., 4161., 4602., 2499., 2796.,
      3213., 3522., 4404., 4872., 4485., 4962., 4566., 5052., 2739., 3066.,
      1544., 1760., 2015., 2342., 2051., 2384., 2087., 2426., 1172., 1400.};
  const std::array<int, 4> in_shape = {{3, 4, 5, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x4x5x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      759.,  822.,  840.,  912.,  921.,  1002., 1164., 1272., 1245.,
      1362., 1326., 1452., 2379., 2622., 2460., 2712., 2541., 2802.,
      2784., 3072., 2865., 3162., 2946., 3252., 3999., 4422., 4080.,
      4512., 4161., 4602., 4404., 4872., 4485., 4962., 4566., 5052.};
  const std::array<int, 4> in_shape = {{3, 4, 5, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x4x5x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      464.,  480.,  496.,  512.,  727.,  754.,   781.,  808.,  865.,  898.,
      931.,  964.,  1003., 1042., 1081., 1120.,  652.,  680.,  708.,  736.,
      987.,  1026., 1065., 1104., 1455., 1518.,  1581., 1644., 1608., 1680.,
      1752., 1824., 1761., 1842., 1923., 2004.,  1101., 1158., 1215., 1272.,
      1557., 1626., 1695., 1764., 2220., 2328.,  2436., 2544., 2373., 2490.,
      2607., 2724., 2526., 2652., 2778., 2904.,  1551., 1638., 1725., 1812.,
      792.,  848.,  904.,  960.,  1063., 1150.,  1237., 1324., 1129., 1222.,
      1315., 1408., 1195., 1294., 1393., 1492.,  676.,  744.,  812.,  880.,
      2464., 2560., 2656., 2752., 3487., 3634.,  3781., 3928., 3625., 3778.,
      3931., 4084., 3763., 3922., 4081., 4240.,  2332., 2440., 2548., 2656.,
      3267., 3426., 3585., 3744., 4515., 4758.,  5001., 5244., 4668., 4920.,
      5172., 5424., 4821., 5082., 5343., 5604.,  2901., 3078., 3255., 3432.,
      3837., 4026., 4215., 4404., 5280., 5568.,  5856., 6144., 5433., 5730.,
      6027., 6324., 5586., 5892., 6198., 6504.,  3351., 3558., 3765., 3972.,
      1832., 1968., 2104., 2240., 2383., 2590.,  2797., 3004., 2449., 2662.,
      2875., 3088., 2515., 2734., 2953., 3172.,  1396., 1544., 1692., 1840.,
      4464., 4640., 4816., 4992., 6247., 6514.,  6781., 7048., 6385., 6658.,
      6931., 7204., 6523., 6802., 7081., 7360.,  4012., 4200., 4388., 4576.,
      5547., 5826., 6105., 6384., 7575., 7998.,  8421., 8844., 7728., 8160.,
      8592., 9024., 7881., 8322., 8763., 9204.,  4701., 4998., 5295., 5592.,
      6117., 6426., 6735., 7044., 8340., 8808.,  9276., 9744., 8493., 8970.,
      9447., 9924., 8646., 9132., 9618., 10104., 5151., 5478., 5805., 6132.,
      2872., 3088., 3304., 3520., 3703., 4030.,  4357., 4684., 3769., 4102.,
      4435., 4768., 3835., 4174., 4513., 4852.,  2116., 2344., 2572., 2800.};
  const std::array<int, 4> in_shape = {{3, 4, 5, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x4x5x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1455., 1518., 1581., 1644., 1608., 1680., 1752., 1824., 1761.,
      1842., 1923., 2004., 2220., 2328., 2436., 2544., 2373., 2490.,
      2607., 2724., 2526., 2652., 2778., 2904., 4515., 4758., 5001.,
      5244., 4668., 4920., 5172., 5424., 4821., 5082., 5343., 5604.,
      5280., 5568., 5856., 6144., 5433., 5730., 6027., 6324., 5586.,
      5892., 6198., 6504., 7575., 7998., 8421., 8844., 7728., 8160.,
      8592., 9024., 7881., 8322., 8763., 9204., 8340., 8808., 9276.,
      9744., 8493., 8970., 9447., 9924., 8646., 9132., 9618., 10104.};
  const std::array<int, 4> in_shape = {{3, 4, 5, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x4x5x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      428.,  512.,  682.,  808.,  826.,  964.,  970.,  1120.,  636.,  736.,
      966.,  1104., 1437., 1644., 1599., 1824., 1761., 2004.,  1110., 1272.,
      1566., 1764., 2247., 2544., 2409., 2724., 2571., 2904.,  1590., 1812.,
      820.,  960.,  1114., 1324., 1186., 1408., 1258., 1492.,  724.,  880.,
      2508., 2752., 3562., 3928., 3706., 4084., 3850., 4240.,  2396., 2656.,
      3366., 3744., 4677., 5244., 4839., 5424., 5001., 5604.,  3030., 3432.,
      3966., 4404., 5487., 6144., 5649., 6324., 5811., 6504.,  3510., 3972.,
      1940., 2240., 2554., 3004., 2626., 3088., 2698., 3172.,  1524., 1840.,
      4588., 4992., 6442., 7048., 6586., 7204., 6730., 7360.,  4156., 4576.,
      5766., 6384., 7917., 8844., 8079., 9024., 8241., 9204.,  4950., 5592.,
      6366., 7044., 8727., 9744., 8889., 9924., 9051., 10104., 5430., 6132.,
      3060., 3520., 3994., 4684., 4066., 4768., 4138., 4852.,  2324., 2800.};
  const std::array<int, 4> in_shape = {{3, 4, 5, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x4x5x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1437., 1644., 1599., 1824., 1761., 2004., 2247., 2544., 2409.,
      2724., 2571., 2904., 4677., 5244., 4839., 5424., 5001., 5604.,
      5487., 6144., 5649., 6324., 5811., 6504., 7917., 8844., 8079.,
      9024., 8241., 9204., 8727., 9744., 8889., 9924., 9051., 10104.};
  const std::array<int, 4> in_shape = {{3, 4, 5, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x4x5x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      828.,   856.,   992.,   1024.,  1316.,  1364.,  1562.,  1616.,  1592.,
      1652.,  1862.,  1928.,  1868.,  1940.,  2162.,  2240.,  1220.,  1272.,
      1416.,  1472.,  1860.,  1932.,  2130.,  2208.,  2757.,  2874.,  3162.,
      3288.,  3063.,  3198.,  3504.,  3648.,  3369.,  3522.,  3846.,  4008.,
      2112.,  2220.,  2430.,  2544.,  3000.,  3132.,  3390.,  3528.,  4287.,
      4494.,  4872.,  5088.,  4593.,  4818.,  5214.,  5448.,  4899.,  5142.,
      5556.,  5808.,  3012.,  3180.,  3450.,  3624.,  1532.,  1640.,  1808.,
      1920.,  2060.,  2228.,  2474.,  2648.,  2192.,  2372.,  2630.,  2816.,
      2324.,  2516.,  2786.,  2984.,  1316.,  1448.,  1624.,  1760.,  4828.,
      5016.,  5312.,  5504.,  6836.,  7124.,  7562.,  7856.,  7112.,  7412.,
      7862.,  8168.,  7388.,  7700.,  8162.,  8480.,  4580.,  4792.,  5096.,
      5312.,  6420.,  6732.,  7170.,  7488.,  8877.,  9354.,  10002., 10488.,
      9183.,  9678.,  10344., 10848., 9489.,  10002., 10686., 11208., 5712.,
      6060.,  6510.,  6864.,  7560.,  7932.,  8430.,  8808.,  10407., 10974.,
      11712., 12288., 10713., 11298., 12054., 12648., 11019., 11622., 12396.,
      13008., 6612.,  7020.,  7530.,  7944.,  3612.,  3880.,  4208.,  4480.,
      4700.,  5108.,  5594.,  6008.,  4832.,  5252.,  5750.,  6176.,  4964.,
      5396.,  5906.,  6344.,  2756.,  3048.,  3384.,  3680.,  8828.,  9176.,
      9632.,  9984.,  12356., 12884., 13562., 14096., 12632., 13172., 13862.,
      14408., 12908., 13460., 14162., 14720., 7940.,  8312.,  8776.,  9152.,
      10980., 11532., 12210., 12768., 14997., 15834., 16842., 17688., 15303.,
      16158., 17184., 18048., 15609., 16482., 17526., 18408., 9312.,  9900.,
      10590., 11184., 12120., 12732., 13470., 14088., 16527., 17454., 18552.,
      19488., 16833., 17778., 18894., 19848., 17139., 18102., 19236., 20208.,
      10212., 10860., 11610., 12264., 5692.,  6120.,  6608.,  7040.,  7340.,
      7988.,  8714.,  9368.,  7472.,  8132.,  8870.,  9536.,  7604.,  8276.,
      9026.,  9704.,  4196.,  4648.,  5144.,  5600.};
  const std::array<int, 4> in_shape = {{3, 4, 5, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x4x5x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2757.,  2874.,  3162.,  3288.,  3063.,  3198.,  3504.,  3648.,  3369.,
      3522.,  3846.,  4008.,  4287.,  4494.,  4872.,  5088.,  4593.,  4818.,
      5214.,  5448.,  4899.,  5142.,  5556.,  5808.,  8877.,  9354.,  10002.,
      10488., 9183.,  9678.,  10344., 10848., 9489.,  10002., 10686., 11208.,
      10407., 10974., 11712., 12288., 10713., 11298., 12054., 12648., 11019.,
      11622., 12396., 13008., 14997., 15834., 16842., 17688., 15303., 16158.,
      17184., 18048., 15609., 16482., 17526., 18408., 16527., 17454., 18552.,
      19488., 16833., 17778., 18894., 19848., 17139., 18102., 19236., 20208.};
  const std::array<int, 4> in_shape = {{3, 4, 5, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x4x5x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1628.,  1656.,  1684.,  1712.,  1952.,  1984.,  2016.,  2048.,  2584.,
      2632.,  2680.,  2728.,  3070.,  3124.,  3178.,  3232.,  3124.,  3184.,
      3244.,  3304.,  3658.,  3724.,  3790.,  3856.,  3664.,  3736.,  3808.,
      3880.,  4246.,  4324.,  4402.,  4480.,  2388.,  2440.,  2492.,  2544.,
      2776.,  2832.,  2888.,  2944.,  3648.,  3720.,  3792.,  3864.,  4182.,
      4260.,  4338.,  4416.,  5397.,  5514.,  5631.,  5748.,  6198.,  6324.,
      6450.,  6576.,  5991.,  6126.,  6261.,  6396.,  6864.,  7008.,  7152.,
      7296.,  6585.,  6738.,  6891.,  7044.,  7530.,  7692.,  7854.,  8016.,
      4116.,  4224.,  4332.,  4440.,  4746.,  4860.,  4974.,  5088.,  5868.,
      6000.,  6132.,  6264.,  6642.,  6780.,  6918.,  7056.,  8367.,  8574.,
      8781.,  8988.,  9528.,  9744.,  9960.,  10176., 8961.,  9186.,  9411.,
      9636.,  10194., 10428., 10662., 10896., 9555.,  9798.,  10041., 10284.,
      10860., 11112., 11364., 11616., 5856.,  6024.,  6192.,  6360.,  6726.,
      6900.,  7074.,  7248.,  2956.,  3064.,  3172.,  3280.,  3504.,  3616.,
      3728.,  3840.,  3952.,  4120.,  4288.,  4456.,  4774.,  4948.,  5122.,
      5296.,  4204.,  4384.,  4564.,  4744.,  5074.,  5260.,  5446.,  5632.,
      4456.,  4648.,  4840.,  5032.,  5374.,  5572.,  5770.,  5968.,  2500.,
      2632.,  2764.,  2896.,  3112.,  3248.,  3384.,  3520.,  9468.,  9656.,
      9844.,  10032., 10432., 10624., 10816., 11008., 13384., 13672., 13960.,
      14248., 14830., 15124., 15418., 15712., 13924., 14224., 14524., 14824.,
      15418., 15724., 16030., 16336., 14464., 14776., 15088., 15400., 16006.,
      16324., 16642., 16960., 8948.,  9160.,  9372.,  9584.,  9976.,  10192.,
      10408., 10624., 12528., 12840., 13152., 13464., 14022., 14340., 14658.,
      14976., 17277., 17754., 18231., 18708., 19518., 20004., 20490., 20976.,
      17871., 18366., 18861., 19356., 20184., 20688., 21192., 21696., 18465.,
      18978., 19491., 20004., 20850., 21372., 21894., 22416., 11076., 11424.,
      11772., 12120., 12666., 13020., 13374., 13728., 14748., 15120., 15492.,
      15864., 16482., 16860., 17238., 17616., 20247., 20814., 21381., 21948.,
      22848., 23424., 24000., 24576., 20841., 21426., 22011., 22596., 23514.,
      24108., 24702., 25296., 21435., 22038., 22641., 23244., 24180., 24792.,
      25404., 26016., 12816., 13224., 13632., 14040., 14646., 15060., 15474.,
      15888., 6956.,  7224.,  7492.,  7760.,  8144.,  8416.,  8688.,  8960.,
      8992.,  9400.,  9808.,  10216., 10774., 11188., 11602., 12016., 9244.,
      9664.,  10084., 10504., 11074., 11500., 11926., 12352., 9496.,  9928.,
      10360., 10792., 11374., 11812., 12250., 12688., 5220.,  5512.,  5804.,
      6096.,  6472.,  6768.,  7064.,  7360.,  17308., 17656., 18004., 18352.,
      18912., 19264., 19616., 19968., 24184., 24712., 25240., 25768., 26590.,
      27124., 27658., 28192., 24724., 25264., 25804., 26344., 27178., 27724.,
      28270., 28816., 25264., 25816., 26368., 26920., 27766., 28324., 28882.,
      29440., 15508., 15880., 16252., 16624., 17176., 17552., 17928., 18304.,
      21408., 21960., 22512., 23064., 23862., 24420., 24978., 25536., 29157.,
      29994., 30831., 31668., 32838., 33684., 34530., 35376., 29751., 30606.,
      31461., 32316., 33504., 34368., 35232., 36096., 30345., 31218., 32091.,
      32964., 34170., 35052., 35934., 36816., 18036., 18624., 19212., 19800.,
      20586., 21180., 21774., 22368., 23628., 24240., 24852., 25464., 26322.,
      26940., 27558., 28176., 32127., 33054., 33981., 34908., 36168., 37104.,
      38040., 38976., 32721., 33666., 34611., 35556., 36834., 37788., 38742.,
      39696., 33315., 34278., 35241., 36204., 37500., 38472., 39444., 40416.,
      19776., 20424., 21072., 21720., 22566., 23220., 23874., 24528., 10956.,
      11384., 11812., 12240., 12784., 13216., 13648., 14080., 14032., 14680.,
      15328., 15976., 16774., 17428., 18082., 18736., 14284., 14944., 15604.,
      16264., 17074., 17740., 18406., 19072., 14536., 15208., 15880., 16552.,
      17374., 18052., 18730., 19408., 7940.,  8392.,  8844.,  9296.,  9832.,
      10288., 10744., 11200.};
  const std::array<int, 4> in_shape = {{3, 4, 5, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x4x5x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5397.,  5514.,  5631.,  5748.,  6198.,  6324.,  6450.,  6576.,  5991.,
      6126.,  6261.,  6396.,  6864.,  7008.,  7152.,  7296.,  6585.,  6738.,
      6891.,  7044.,  7530.,  7692.,  7854.,  8016.,  8367.,  8574.,  8781.,
      8988.,  9528.,  9744.,  9960.,  10176., 8961.,  9186.,  9411.,  9636.,
      10194., 10428., 10662., 10896., 9555.,  9798.,  10041., 10284., 10860.,
      11112., 11364., 11616., 17277., 17754., 18231., 18708., 19518., 20004.,
      20490., 20976., 17871., 18366., 18861., 19356., 20184., 20688., 21192.,
      21696., 18465., 18978., 19491., 20004., 20850., 21372., 21894., 22416.,
      20247., 20814., 21381., 21948., 22848., 23424., 24000., 24576., 20841.,
      21426., 22011., 22596., 23514., 24108., 24702., 25296., 21435., 22038.,
      22641., 23244., 24180., 24792., 25404., 26016., 29157., 29994., 30831.,
      31668., 32838., 33684., 34530., 35376., 29751., 30606., 31461., 32316.,
      33504., 34368., 35232., 36096., 30345., 31218., 32091., 32964., 34170.,
      35052., 35934., 36816., 32127., 33054., 33981., 34908., 36168., 37104.,
      38040., 38976., 32721., 33666., 34611., 35556., 36834., 37788., 38742.,
      39696., 33315., 34278., 35241., 36204., 37500., 38472., 39444., 40416.};
  const std::array<int, 4> in_shape = {{3, 4, 5, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x4x5x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1556.,  1712.,  1876.,  2048.,  2494.,  2728.,  2974.,  3232.,  3046.,
      3304.,  3574.,  3856.,  3598.,  3880.,  4174.,  4480.,  2356.,  2544.,
      2740.,  2944.,  3606.,  3864.,  4134.,  4416.,  5361.,  5748.,  6153.,
      6576.,  5973.,  6396.,  6837.,  7296.,  6585.,  7044.,  7521.,  8016.,
      4134.,  4440.,  4758.,  5088.,  5886.,  6264.,  6654.,  7056.,  8421.,
      8988.,  9573.,  10176., 9033.,  9636.,  10257., 10896., 9645.,  10284.,
      10941., 11616., 5934.,  6360.,  6798.,  7248.,  3012.,  3280.,  3556.,
      3840.,  4054.,  4456.,  4870.,  5296.,  4318.,  4744.,  5182.,  5632.,
      4582.,  5032.,  5494.,  5968.,  2596.,  2896.,  3204.,  3520.,  9556.,
      10032., 10516., 11008., 13534., 14248., 14974., 15712., 14086., 14824.,
      15574., 16336., 14638., 15400., 16174., 16960., 9076.,  9584.,  10100.,
      10624., 12726., 13464., 14214., 14976., 17601., 18708., 19833., 20976.,
      18213., 19356., 20517., 21696., 18825., 20004., 21201., 22416., 11334.,
      12120., 12918., 13728., 15006., 15864., 16734., 17616., 20661., 21948.,
      23253., 24576., 21273., 22596., 23937., 25296., 21885., 23244., 24621.,
      26016., 13134., 14040., 14958., 15888., 7172.,  7760.,  8356.,  8960.,
      9334.,  10216., 11110., 12016., 9598.,  10504., 11422., 12352., 9862.,
      10792., 11734., 12688., 5476.,  6096.,  6724.,  7360.,  17556., 18352.,
      19156., 19968., 24574., 25768., 26974., 28192., 25126., 26344., 27574.,
      28816., 25678., 26920., 28174., 29440., 15796., 16624., 17460., 18304.,
      21846., 23064., 24294., 25536., 29841., 31668., 33513., 35376., 30453.,
      32316., 34197., 36096., 31065., 32964., 34881., 36816., 18534., 19800.,
      21078., 22368., 24126., 25464., 26814., 28176., 32901., 34908., 36933.,
      38976., 33513., 35556., 37617., 39696., 34125., 36204., 38301., 40416.,
      20334., 21720., 23118., 24528., 11332., 12240., 13156., 14080., 14614.,
      15976., 17350., 18736., 14878., 16264., 17662., 19072., 15142., 16552.,
      17974., 19408., 8356.,  9296.,  10244., 11200.};
  const std::array<int, 4> in_shape = {{3, 4, 5, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x4x5x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5361.,  5748.,  6153.,  6576.,  5973.,  6396.,  6837.,  7296.,  6585.,
      7044.,  7521.,  8016.,  8421.,  8988.,  9573.,  10176., 9033.,  9636.,
      10257., 10896., 9645.,  10284., 10941., 11616., 17601., 18708., 19833.,
      20976., 18213., 19356., 20517., 21696., 18825., 20004., 21201., 22416.,
      20661., 21948., 23253., 24576., 21273., 22596., 23937., 25296., 21885.,
      23244., 24621., 26016., 29841., 31668., 33513., 35376., 30453., 32316.,
      34197., 36096., 31065., 32964., 34881., 36816., 32901., 34908., 36933.,
      38976., 33513., 35556., 37617., 39696., 34125., 36204., 38301., 40416.};
  const std::array<int, 4> in_shape = {{3, 4, 5, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x4x5x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3060.,  3112.,  3368.,  3424.,  3692.,  3752.,  4032.,  4096.,  4898.,
      4988.,  5360.,  5456.,  5846.,  5948.,  6356.,  6464.,  5978.,  6092.,
      6488.,  6608.,  7022.,  7148.,  7580.,  7712.,  7058.,  7196.,  7616.,
      7760.,  8198.,  8348.,  8804.,  8960.,  4612.,  4712.,  4984.,  5088.,
      5372.,  5480.,  5776.,  5888.,  7074.,  7212.,  7584.,  7728.,  8118.,
      8268.,  8676.,  8832.,  10497., 10722., 11262., 11496., 12063., 12306.,
      12900., 13152., 11685., 11946., 12522., 12792., 13395., 13674., 14304.,
      14592., 12873., 13170., 13782., 14088., 14727., 15042., 15708., 16032.,
      8058.,  8268.,  8664.,  8880.,  9294.,  9516.,  9948.,  10176., 11514.,
      11772., 12264., 12528., 13038., 13308., 13836., 14112., 16437., 16842.,
      17562., 17976., 18723., 19146., 19920., 20352., 17625., 18066., 18822.,
      19272., 20055., 20514., 21324., 21792., 18813., 19290., 20082., 20568.,
      21387., 21882., 22728., 23232., 11538., 11868., 12384., 12720., 13254.,
      13596., 14148., 14496., 5812.,  6024.,  6344.,  6560.,  6892.,  7112.,
      7456.,  7680.,  7778.,  8108.,  8576.,  8912.,  9398.,  9740.,  10244.,
      10592., 8282.,  8636.,  9128.,  9488.,  9998.,  10364., 10892., 11264.,
      8786.,  9164.,  9680.,  10064., 10598., 10988., 11540., 11936., 4932.,
      5192.,  5528.,  5792.,  6140.,  6408.,  6768.,  7040.,  18740., 19112.,
      19688., 20064., 20652., 21032., 21632., 22016., 26498., 27068., 27920.,
      28496., 29366., 29948., 30836., 31424., 27578., 28172., 29048., 29648.,
      30542., 31148., 32060., 32672., 28658., 29276., 30176., 30800., 31718.,
      32348., 33284., 33920., 17732., 18152., 18744., 19168., 19772., 20200.,
      20816., 21248., 24834., 25452., 26304., 26928., 27798., 28428., 29316.,
      29952., 34257., 35202., 36462., 37416., 38703., 39666., 40980., 41952.,
      35445., 36426., 37722., 38712., 40035., 41034., 42384., 43392., 36633.,
      37650., 38982., 40008., 41367., 42402., 43788., 44832., 21978., 22668.,
      23544., 24240., 25134., 25836., 26748., 27456., 29274., 30012., 30984.,
      31728., 32718., 33468., 34476., 35232., 40197., 41322., 42762., 43896.,
      45363., 46506., 48000., 49152., 41385., 42546., 44022., 45192., 46695.,
      47874., 49404., 50592., 42573., 43770., 45282., 46488., 48027., 49242.,
      50808., 52032., 25458., 26268., 27264., 28080., 29094., 29916., 30948.,
      31776., 13812., 14344., 14984., 15520., 16172., 16712., 17376., 17920.,
      17858., 18668., 19616., 20432., 21398., 22220., 23204., 24032., 18362.,
      19196., 20168., 21008., 21998., 22844., 23852., 24704., 18866., 19724.,
      20720., 21584., 22598., 23468., 24500., 25376., 10372., 10952., 11608.,
      12192., 12860., 13448., 14128., 14720., 34420., 35112., 36008., 36704.,
      37612., 38312., 39232., 39936., 48098., 49148., 50480., 51536., 52886.,
      53948., 55316., 56384., 49178., 50252., 51608., 52688., 54062., 55148.,
      56540., 57632., 50258., 51356., 52736., 53840., 55238., 56348., 57764.,
      58880., 30852., 31592., 32504., 33248., 34172., 34920., 35856., 36608.,
      42594., 43692., 45024., 46128., 47478., 48588., 49956., 51072., 58017.,
      59682., 61662., 63336., 65343., 67026., 69060., 70752., 59205., 60906.,
      62922., 64632., 66675., 68394., 70464., 72192., 60393., 62130., 64182.,
      65928., 68007., 69762., 71868., 73632., 35898., 37068., 38424., 39600.,
      40974., 42156., 43548., 44736., 47034., 48252., 49704., 50928., 52398.,
      53628., 55116., 56352., 63957., 65802., 67962., 69816., 72003., 73866.,
      76080., 77952., 65145., 67026., 69222., 71112., 73335., 75234., 77484.,
      79392., 66333., 68250., 70482., 72408., 74667., 76602., 78888., 80832.,
      39378., 40668., 42144., 43440., 44934., 46236., 47748., 49056., 21812.,
      22664., 23624., 24480., 25452., 26312., 27296., 28160., 27938., 29228.,
      30656., 31952., 33398., 34700., 36164., 37472., 28442., 29756., 31208.,
      32528., 33998., 35324., 36812., 38144., 28946., 30284., 31760., 33104.,
      34598., 35948., 37460., 38816., 15812., 16712., 17688., 18592., 19580.,
      20488., 21488., 22400.};
  const std::array<int, 4> in_shape = {{3, 4, 5, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x4x5x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      10497., 10722., 11262., 11496., 12063., 12306., 12900., 13152., 11685.,
      11946., 12522., 12792., 13395., 13674., 14304., 14592., 12873., 13170.,
      13782., 14088., 14727., 15042., 15708., 16032., 16437., 16842., 17562.,
      17976., 18723., 19146., 19920., 20352., 17625., 18066., 18822., 19272.,
      20055., 20514., 21324., 21792., 18813., 19290., 20082., 20568., 21387.,
      21882., 22728., 23232., 34257., 35202., 36462., 37416., 38703., 39666.,
      40980., 41952., 35445., 36426., 37722., 38712., 40035., 41034., 42384.,
      43392., 36633., 37650., 38982., 40008., 41367., 42402., 43788., 44832.,
      40197., 41322., 42762., 43896., 45363., 46506., 48000., 49152., 41385.,
      42546., 44022., 45192., 46695., 47874., 49404., 50592., 42573., 43770.,
      45282., 46488., 48027., 49242., 50808., 52032., 58017., 59682., 61662.,
      63336., 65343., 67026., 69060., 70752., 59205., 60906., 62922., 64632.,
      66675., 68394., 70464., 72192., 60393., 62130., 64182., 65928., 68007.,
      69762., 71868., 73632., 63957., 65802., 67962., 69816., 72003., 73866.,
      76080., 77952., 65145., 67026., 69222., 71112., 73335., 75234., 77484.,
      79392., 66333., 68250., 70482., 72408., 74667., 76602., 78888., 80832.};
  const std::array<int, 4> in_shape = {{3, 4, 5, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x4x5x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6068.,   6120.,   6172.,   6224.,   6680.,   6736.,   6792.,   6848.,
      7324.,   7384.,   7444.,   7504.,   8000.,   8064.,   8128.,   8192.,
      9706.,   9796.,   9886.,   9976.,   10624.,  10720.,  10816.,  10912.,
      11590.,  11692.,  11794.,  11896.,  12604.,  12712.,  12820.,  12928.,
      11842.,  11956.,  12070.,  12184.,  12856.,  12976.,  13096.,  13216.,
      13918.,  14044.,  14170.,  14296.,  15028.,  15160.,  15292.,  15424.,
      13978.,  14116.,  14254.,  14392.,  15088.,  15232.,  15376.,  15520.,
      16246.,  16396.,  16546.,  16696.,  17452.,  17608.,  17764.,  17920.,
      9124.,   9224.,   9324.,   9424.,   9864.,   9968.,   10072.,  10176.,
      10636.,  10744.,  10852.,  10960.,  11440.,  11552.,  11664.,  11776.,
      14010.,  14148.,  14286.,  14424.,  15024.,  15168.,  15312.,  15456.,
      16086.,  16236.,  16386.,  16536.,  17196.,  17352.,  17508.,  17664.,
      20769.,  20994.,  21219.,  21444.,  22290.,  22524.,  22758.,  22992.,
      23883.,  24126.,  24369.,  24612.,  25548.,  25800.,  26052.,  26304.,
      23109.,  23370.,  23631.,  23892.,  24774.,  25044.,  25314.,  25584.,
      26511.,  26790.,  27069.,  27348.,  28320.,  28608.,  28896.,  29184.,
      25449.,  25746.,  26043.,  26340.,  27258.,  27564.,  27870.,  28176.,
      29139.,  29454.,  29769.,  30084.,  31092.,  31416.,  31740.,  32064.,
      15906.,  16116.,  16326.,  16536.,  17112.,  17328.,  17544.,  17760.,
      18366.,  18588.,  18810.,  19032.,  19668.,  19896.,  20124.,  20352.,
      22770.,  23028.,  23286.,  23544.,  24264.,  24528.,  24792.,  25056.,
      25806.,  26076.,  26346.,  26616.,  27396.,  27672.,  27948.,  28224.,
      32469.,  32874.,  33279.,  33684.,  34710.,  35124.,  35538.,  35952.,
      37023.,  37446.,  37869.,  38292.,  39408.,  39840.,  40272.,  40704.,
      34809.,  35250.,  35691.,  36132.,  37194.,  37644.,  38094.,  38544.,
      39651.,  40110.,  40569.,  41028.,  42180.,  42648.,  43116.,  43584.,
      37149.,  37626.,  38103.,  38580.,  39678.,  40164.,  40650.,  41136.,
      42279.,  42774.,  43269.,  43764.,  44952.,  45456.,  45960.,  46464.,
      22746.,  23076.,  23406.,  23736.,  24432.,  24768.,  25104.,  25440.,
      26166.,  26508.,  26850.,  27192.,  27948.,  28296.,  28644.,  28992.,
      11412.,  11624.,  11836.,  12048.,  12472.,  12688.,  12904.,  13120.,
      13564.,  13784.,  14004.,  14224.,  14688.,  14912.,  15136.,  15360.,
      15226.,  15556.,  15886.,  16216.,  16816.,  17152.,  17488.,  17824.,
      18454.,  18796.,  19138.,  19480.,  20140.,  20488.,  20836.,  21184.,
      16210.,  16564.,  16918.,  17272.,  17896.,  18256.,  18616.,  18976.,
      19630.,  19996.,  20362.,  20728.,  21412.,  21784.,  22156.,  22528.,
      17194.,  17572.,  17950.,  18328.,  18976.,  19360.,  19744.,  20128.,
      20806.,  21196.,  21586.,  21976.,  22684.,  23080.,  23476.,  23872.,
      9604.,   9864.,   10124.,  10384.,  10792.,  11056.,  11320.,  11584.,
      12012.,  12280.,  12548.,  12816.,  13264.,  13536.,  13808.,  14080.,
      37108.,  37480.,  37852.,  38224.,  39000.,  39376.,  39752.,  40128.,
      40924.,  41304.,  41684.,  42064.,  42880.,  43264.,  43648.,  44032.,
      52426.,  52996.,  53566.,  54136.,  55264.,  55840.,  56416.,  56992.,
      58150.,  58732.,  59314.,  59896.,  61084.,  61672.,  62260.,  62848.,
      54562.,  55156.,  55750.,  56344.,  57496.,  58096.,  58696.,  59296.,
      60478.,  61084.,  61690.,  62296.,  63508.,  64120.,  64732.,  65344.,
      56698.,  57316.,  57934.,  58552.,  59728.,  60352.,  60976.,  61600.,
      62806.,  63436.,  64066.,  64696.,  65932.,  66568.,  67204.,  67840.,
      35044.,  35464.,  35884.,  36304.,  37064.,  37488.,  37912.,  38336.,
      39116.,  39544.,  39972.,  40400.,  41200.,  41632.,  42064.,  42496.,
      49050.,  49668.,  50286.,  50904.,  51984.,  52608.,  53232.,  53856.,
      54966.,  55596.,  56226.,  56856.,  57996.,  58632.,  59268.,  59904.,
      67569.,  68514.,  69459.,  70404.,  71970.,  72924.,  73878.,  74832.,
      76443.,  77406.,  78369.,  79332.,  80988.,  81960.,  82932.,  83904.,
      69909.,  70890.,  71871.,  72852.,  74454.,  75444.,  76434.,  77424.,
      79071.,  80070.,  81069.,  82068.,  83760.,  84768.,  85776.,  86784.,
      72249.,  73266.,  74283.,  75300.,  76938.,  77964.,  78990.,  80016.,
      81699.,  82734.,  83769.,  84804.,  86532.,  87576.,  88620.,  89664.,
      43266.,  43956.,  44646.,  45336.,  46392.,  47088.,  47784.,  48480.,
      49566.,  50268.,  50970.,  51672.,  52788.,  53496.,  54204.,  54912.,
      57810.,  58548.,  59286.,  60024.,  61224.,  61968.,  62712.,  63456.,
      64686.,  65436.,  66186.,  66936.,  68196.,  68952.,  69708.,  70464.,
      79269.,  80394.,  81519.,  82644.,  84390.,  85524.,  86658.,  87792.,
      89583.,  90726.,  91869.,  93012.,  94848.,  96000.,  97152.,  98304.,
      81609.,  82770.,  83931.,  85092.,  86874.,  88044.,  89214.,  90384.,
      92211.,  93390.,  94569.,  95748.,  97620.,  98808.,  99996.,  101184.,
      83949.,  85146.,  86343.,  87540.,  89358.,  90564.,  91770.,  92976.,
      94839.,  96054.,  97269.,  98484.,  100392., 101616., 102840., 104064.,
      50106.,  50916.,  51726.,  52536.,  53712.,  54528.,  55344.,  56160.,
      57366.,  58188.,  59010.,  59832.,  61068.,  61896.,  62724.,  63552.,
      27092.,  27624.,  28156.,  28688.,  29432.,  29968.,  30504.,  31040.,
      31804.,  32344.,  32884.,  33424.,  34208.,  34752.,  35296.,  35840.,
      34906.,  35716.,  36526.,  37336.,  38416.,  39232.,  40048.,  40864.,
      41974.,  42796.,  43618.,  44440.,  45580.,  46408.,  47236.,  48064.,
      35890.,  36724.,  37558.,  38392.,  39496.,  40336.,  41176.,  42016.,
      43150.,  43996.,  44842.,  45688.,  46852.,  47704.,  48556.,  49408.,
      36874.,  37732.,  38590.,  39448.,  40576.,  41440.,  42304.,  43168.,
      44326.,  45196.,  46066.,  46936.,  48124.,  49000.,  49876.,  50752.,
      20164.,  20744.,  21324.,  21904.,  22632.,  23216.,  23800.,  24384.,
      25132.,  25720.,  26308.,  26896.,  27664.,  28256.,  28848.,  29440.,
      68148.,  68840.,  69532.,  70224.,  71320.,  72016.,  72712.,  73408.,
      74524.,  75224.,  75924.,  76624.,  77760.,  78464.,  79168.,  79872.,
      95146.,  96196.,  97246.,  98296.,  99904.,  100960., 102016., 103072.,
      104710., 105772., 106834., 107896., 109564., 110632., 111700., 112768.,
      97282.,  98356.,  99430.,  100504., 102136., 103216., 104296., 105376.,
      107038., 108124., 109210., 110296., 111988., 113080., 114172., 115264.,
      99418.,  100516., 101614., 102712., 104368., 105472., 106576., 107680.,
      109366., 110476., 111586., 112696., 114412., 115528., 116644., 117760.,
      60964.,  61704.,  62444.,  63184.,  64264.,  65008.,  65752.,  66496.,
      67596.,  68344.,  69092.,  69840.,  70960.,  71712.,  72464.,  73216.,
      84090.,  85188.,  86286.,  87384.,  88944.,  90048.,  91152.,  92256.,
      93846.,  94956.,  96066.,  97176.,  98796.,  99912.,  101028., 102144.,
      114369., 116034., 117699., 119364., 121650., 123324., 124998., 126672.,
      129003., 130686., 132369., 134052., 136428., 138120., 139812., 141504.,
      116709., 118410., 120111., 121812., 124134., 125844., 127554., 129264.,
      131631., 133350., 135069., 136788., 139200., 140928., 142656., 144384.,
      119049., 120786., 122523., 124260., 126618., 128364., 130110., 131856.,
      134259., 136014., 137769., 139524., 141972., 143736., 145500., 147264.,
      70626.,  71796.,  72966.,  74136.,  75672.,  76848.,  78024.,  79200.,
      80766.,  81948.,  83130.,  84312.,  85908.,  87096.,  88284.,  89472.,
      92850.,  94068.,  95286.,  96504.,  98184.,  99408.,  100632., 101856.,
      103566., 104796., 106026., 107256., 108996., 110232., 111468., 112704.,
      126069., 127914., 129759., 131604., 134070., 135924., 137778., 139632.,
      142143., 144006., 145869., 147732., 150288., 152160., 154032., 155904.,
      128409., 130290., 132171., 134052., 136554., 138444., 140334., 142224.,
      144771., 146670., 148569., 150468., 153060., 154968., 156876., 158784.,
      130749., 132666., 134583., 136500., 139038., 140964., 142890., 144816.,
      147399., 149334., 151269., 153204., 155832., 157776., 159720., 161664.,
      77466.,  78756.,  80046.,  81336.,  82992.,  84288.,  85584.,  86880.,
      88566.,  89868.,  91170.,  92472.,  94188.,  95496.,  96804.,  98112.,
      42772.,  43624.,  44476.,  45328.,  46392.,  47248.,  48104.,  48960.,
      50044.,  50904.,  51764.,  52624.,  53728.,  54592.,  55456.,  56320.,
      54586.,  55876.,  57166.,  58456.,  60016.,  61312.,  62608.,  63904.,
      65494.,  66796.,  68098.,  69400.,  71020.,  72328.,  73636.,  74944.,
      55570.,  56884.,  58198.,  59512.,  61096.,  62416.,  63736.,  65056.,
      66670.,  67996.,  69322.,  70648.,  72292.,  73624.,  74956.,  76288.,
      56554.,  57892.,  59230.,  60568.,  62176.,  63520.,  64864.,  66208.,
      67846.,  69196.,  70546.,  71896.,  73564.,  74920.,  76276.,  77632.,
      30724.,  31624.,  32524.,  33424.,  34472.,  35376.,  36280.,  37184.,
      38252.,  39160.,  40068.,  40976.,  42064.,  42976.,  43888.,  44800.};
  const std::array<int, 4> in_shape = {{3, 4, 5, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x4x5x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      20769.,  20994.,  21219.,  21444.,  22290.,  22524.,  22758.,  22992.,
      23883.,  24126.,  24369.,  24612.,  25548.,  25800.,  26052.,  26304.,
      23109.,  23370.,  23631.,  23892.,  24774.,  25044.,  25314.,  25584.,
      26511.,  26790.,  27069.,  27348.,  28320.,  28608.,  28896.,  29184.,
      25449.,  25746.,  26043.,  26340.,  27258.,  27564.,  27870.,  28176.,
      29139.,  29454.,  29769.,  30084.,  31092.,  31416.,  31740.,  32064.,
      32469.,  32874.,  33279.,  33684.,  34710.,  35124.,  35538.,  35952.,
      37023.,  37446.,  37869.,  38292.,  39408.,  39840.,  40272.,  40704.,
      34809.,  35250.,  35691.,  36132.,  37194.,  37644.,  38094.,  38544.,
      39651.,  40110.,  40569.,  41028.,  42180.,  42648.,  43116.,  43584.,
      37149.,  37626.,  38103.,  38580.,  39678.,  40164.,  40650.,  41136.,
      42279.,  42774.,  43269.,  43764.,  44952.,  45456.,  45960.,  46464.,
      67569.,  68514.,  69459.,  70404.,  71970.,  72924.,  73878.,  74832.,
      76443.,  77406.,  78369.,  79332.,  80988.,  81960.,  82932.,  83904.,
      69909.,  70890.,  71871.,  72852.,  74454.,  75444.,  76434.,  77424.,
      79071.,  80070.,  81069.,  82068.,  83760.,  84768.,  85776.,  86784.,
      72249.,  73266.,  74283.,  75300.,  76938.,  77964.,  78990.,  80016.,
      81699.,  82734.,  83769.,  84804.,  86532.,  87576.,  88620.,  89664.,
      79269.,  80394.,  81519.,  82644.,  84390.,  85524.,  86658.,  87792.,
      89583.,  90726.,  91869.,  93012.,  94848.,  96000.,  97152.,  98304.,
      81609.,  82770.,  83931.,  85092.,  86874.,  88044.,  89214.,  90384.,
      92211.,  93390.,  94569.,  95748.,  97620.,  98808.,  99996.,  101184.,
      83949.,  85146.,  86343.,  87540.,  89358.,  90564.,  91770.,  92976.,
      94839.,  96054.,  97269.,  98484.,  100392., 101616., 102840., 104064.,
      114369., 116034., 117699., 119364., 121650., 123324., 124998., 126672.,
      129003., 130686., 132369., 134052., 136428., 138120., 139812., 141504.,
      116709., 118410., 120111., 121812., 124134., 125844., 127554., 129264.,
      131631., 133350., 135069., 136788., 139200., 140928., 142656., 144384.,
      119049., 120786., 122523., 124260., 126618., 128364., 130110., 131856.,
      134259., 136014., 137769., 139524., 141972., 143736., 145500., 147264.,
      126069., 127914., 129759., 131604., 134070., 135924., 137778., 139632.,
      142143., 144006., 145869., 147732., 150288., 152160., 154032., 155904.,
      128409., 130290., 132171., 134052., 136554., 138444., 140334., 142224.,
      144771., 146670., 148569., 150468., 153060., 154968., 156876., 158784.,
      130749., 132666., 134583., 136500., 139038., 140964., 142890., 144816.,
      147399., 149334., 151269., 153204., 155832., 157776., 159720., 161664.};
  const std::array<int, 4> in_shape = {{3, 4, 5, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x4x6x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      145.,  226.,  265.,  304.,  343.,  223.,  321.,  474.,  519.,
      564.,  609.,  384.,  519.,  744.,  789.,  834.,  879.,  546.,
      283.,  388.,  409.,  430.,  451.,  265.,  817.,  1162., 1201.,
      1240., 1279., 799.,  1113., 1554., 1599., 1644., 1689., 1032.,
      1311., 1824., 1869., 1914., 1959., 1194., 667.,  892.,  913.,
      934.,  955.,  553.,  1489., 2098., 2137., 2176., 2215., 1375.,
      1905., 2634., 2679., 2724., 2769., 1680., 2103., 2904., 2949.,
      2994., 3039., 1842., 1051., 1396., 1417., 1438., 1459., 841.};
  const std::array<int, 4> in_shape = {{3, 4, 6, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x4x6x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      474.,  519.,  564.,  609.,  744.,  789.,  834.,  879.,
      1554., 1599., 1644., 1689., 1824., 1869., 1914., 1959.,
      2634., 2679., 2724., 2769., 2904., 2949., 2994., 3039.};
  const std::array<int, 4> in_shape = {{3, 4, 6, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x4x6x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      272.,  290.,  422.,  452.,  494.,  530.,  566.,  608.,  638.,  686.,
      412.,  446.,  597.,  642.,  876.,  948.,  957.,  1038., 1038., 1128.,
      1119., 1218., 699.,  768.,  957.,  1038., 1362., 1488., 1443., 1578.,
      1524., 1668., 1605., 1758., 987.,  1092., 500.,  566.,  674.,  776.,
      710.,  818.,  746.,  860.,  782.,  902.,  448.,  530.,  1520., 1634.,
      2150., 2324., 2222., 2402., 2294., 2480., 2366., 2558., 1468., 1598.,
      2037., 2226., 2820., 3108., 2901., 3198., 2982., 3288., 3063., 3378.,
      1851., 2064., 2397., 2622., 3306., 3648., 3387., 3738., 3468., 3828.,
      3549., 3918., 2139., 2388., 1172., 1334., 1538., 1784., 1574., 1826.,
      1610., 1868., 1646., 1910., 928.,  1106., 2768., 2978., 3878., 4196.,
      3950., 4274., 4022., 4352., 4094., 4430., 2524., 2750., 3477., 3810.,
      4764., 5268., 4845., 5358., 4926., 5448., 5007., 5538., 3003., 3360.,
      3837., 4206., 5250., 5808., 5331., 5898., 5412., 5988., 5493., 6078.,
      3291., 3684., 1844., 2102., 2402., 2792., 2438., 2834., 2474., 2876.,
      2510., 2918., 1408., 1682.};
  const std::array<int, 4> in_shape = {{3, 4, 6, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x4x6x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      876.,  948.,  957.,  1038., 1038., 1128., 1119., 1218., 1362., 1488.,
      1443., 1578., 1524., 1668., 1605., 1758., 2820., 3108., 2901., 3198.,
      2982., 3288., 3063., 3378., 3306., 3648., 3387., 3738., 3468., 3828.,
      3549., 3918., 4764., 5268., 4845., 5358., 4926., 5448., 5007., 5538.,
      5250., 5808., 5331., 5898., 5412., 5988., 5493., 6078.};
  const std::array<int, 4> in_shape = {{3, 4, 6, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x4x6x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      526.,   544.,   562.,   580.,   814.,   844.,   874.,   904.,   952.,
      988.,   1024.,  1060.,  1090.,  1132.,  1174.,  1216.,  1228.,  1276.,
      1324.,  1372.,  790.,   824.,   858.,   892.,   1149.,  1194.,  1239.,
      1284.,  1680.,  1752.,  1824.,  1896.,  1833.,  1914.,  1995.,  2076.,
      1986.,  2076.,  2166.,  2256.,  2139.,  2238.,  2337.,  2436.,  1329.,
      1398.,  1467.,  1536.,  1833.,  1914.,  1995.,  2076.,  2598.,  2724.,
      2850.,  2976.,  2751.,  2886.,  3021.,  3156.,  2904.,  3048.,  3192.,
      3336.,  3057.,  3210.,  3363.,  3516.,  1869.,  1974.,  2079.,  2184.,
      934.,   1000.,  1066.,  1132.,  1246.,  1348.,  1450.,  1552.,  1312.,
      1420.,  1528.,  1636.,  1378.,  1492.,  1606.,  1720.,  1444.,  1564.,
      1684.,  1804.,  814.,   896.,   978.,   1060.,  2926.,  3040.,  3154.,
      3268.,  4126.,  4300.,  4474.,  4648.,  4264.,  4444.,  4624.,  4804.,
      4402.,  4588.,  4774.,  4960.,  4540.,  4732.,  4924.,  5116.,  2806.,
      2936.,  3066.,  3196.,  3885.,  4074.,  4263.,  4452.,  5352.,  5640.,
      5928.,  6216.,  5505.,  5802.,  6099.,  6396.,  5658.,  5964.,  6270.,
      6576.,  5811.,  6126.,  6441.,  6756.,  3489.,  3702.,  3915.,  4128.,
      4569.,  4794.,  5019.,  5244.,  6270.,  6612.,  6954.,  7296.,  6423.,
      6774.,  7125.,  7476.,  6576.,  6936.,  7296.,  7656.,  6729.,  7098.,
      7467.,  7836.,  4029.,  4278.,  4527.,  4776.,  2182.,  2344.,  2506.,
      2668.,  2830.,  3076.,  3322.,  3568.,  2896.,  3148.,  3400.,  3652.,
      2962.,  3220.,  3478.,  3736.,  3028.,  3292.,  3556.,  3820.,  1678.,
      1856.,  2034.,  2212.,  5326.,  5536.,  5746.,  5956.,  7438.,  7756.,
      8074.,  8392.,  7576.,  7900.,  8224.,  8548.,  7714.,  8044.,  8374.,
      8704.,  7852.,  8188.,  8524.,  8860.,  4822.,  5048.,  5274.,  5500.,
      6621.,  6954.,  7287.,  7620.,  9024.,  9528.,  10032., 10536., 9177.,
      9690.,  10203., 10716., 9330.,  9852.,  10374., 10896., 9483.,  10014.,
      10545., 11076., 5649.,  6006.,  6363.,  6720.,  7305.,  7674.,  8043.,
      8412.,  9942.,  10500., 11058., 11616., 10095., 10662., 11229., 11796.,
      10248., 10824., 11400., 11976., 10401., 10986., 11571., 12156., 6189.,
      6582.,  6975.,  7368.,  3430.,  3688.,  3946.,  4204.,  4414.,  4804.,
      5194.,  5584.,  4480.,  4876.,  5272.,  5668.,  4546.,  4948.,  5350.,
      5752.,  4612.,  5020.,  5428.,  5836.,  2542.,  2816.,  3090.,  3364.};
  const std::array<int, 4> in_shape = {{3, 4, 6, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x4x6x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1680.,  1752.,  1824.,  1896.,  1833.,  1914.,  1995.,  2076.,  1986.,
      2076.,  2166.,  2256.,  2139.,  2238.,  2337.,  2436.,  2598.,  2724.,
      2850.,  2976.,  2751.,  2886.,  3021.,  3156.,  2904.,  3048.,  3192.,
      3336.,  3057.,  3210.,  3363.,  3516.,  5352.,  5640.,  5928.,  6216.,
      5505.,  5802.,  6099.,  6396.,  5658.,  5964.,  6270.,  6576.,  5811.,
      6126.,  6441.,  6756.,  6270.,  6612.,  6954.,  7296.,  6423.,  6774.,
      7125.,  7476.,  6576.,  6936.,  7296.,  7656.,  6729.,  7098.,  7467.,
      7836.,  9024.,  9528.,  10032., 10536., 9177.,  9690.,  10203., 10716.,
      9330.,  9852.,  10374., 10896., 9483.,  10014., 10545., 11076., 9942.,
      10500., 11058., 11616., 10095., 10662., 11229., 11796., 10248., 10824.,
      11400., 11976., 10401., 10986., 11571., 12156.};
  const std::array<int, 4> in_shape = {{3, 4, 6, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x4x6x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      492.,   580.,   772.,   904.,   916.,  1060.,  1060.,  1216.,  1204.,
      1372.,  780.,   892.,   1134.,  1284., 1671.,  1896.,  1833.,  2076.,
      1995.,  2256.,  2157.,  2436.,  1350., 1536.,  1854.,  2076.,  2643.,
      2976.,  2805.,  3156.,  2967.,  3336., 3129.,  3516.,  1926.,  2184.,
      972.,   1132.,  1312.,  1552.,  1384., 1636.,  1456.,  1720.,  1528.,
      1804.,  876.,   1060.,  2988.,  3268., 4228.,  4648.,  4372.,  4804.,
      4516.,  4960.,  4660.,  5116.,  2892., 3196.,  4014.,  4452.,  5559.,
      6216.,  5721.,  6396.,  5883.,  6576., 6045.,  6756.,  3654.,  4128.,
      4734.,  5244.,  6531.,  7296.,  6693., 7476.,  6855.,  7656.,  7017.,
      7836.,  4230.,  4776.,  2316.,  2668., 3040.,  3568.,  3112.,  3652.,
      3184.,  3736.,  3256.,  3820.,  1836., 2212.,  5484.,  5956.,  7684.,
      8392.,  7828.,  8548.,  7972.,  8704., 8116.,  8860.,  5004.,  5500.,
      6894.,  7620.,  9447.,  10536., 9609., 10716., 9771.,  10896., 9933.,
      11076., 5958.,  6720.,  7614.,  8412., 10419., 11616., 10581., 11796.,
      10743., 11976., 10905., 12156., 6534., 7368.,  3660.,  4204.,  4768.,
      5584.,  4840.,  5668.,  4912.,  5752., 4984.,  5836.,  2796.,  3364.};
  const std::array<int, 4> in_shape = {{3, 4, 6, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x4x6x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1671.,  1896.,  1833.,  2076.,  1995.,  2256.,  2157.,  2436.,
      2643.,  2976.,  2805.,  3156.,  2967.,  3336.,  3129.,  3516.,
      5559.,  6216.,  5721.,  6396.,  5883.,  6576.,  6045.,  6756.,
      6531.,  7296.,  6693.,  7476.,  6855.,  7656.,  7017.,  7836.,
      9447.,  10536., 9609.,  10716., 9771.,  10896., 9933.,  11076.,
      10419., 11616., 10581., 11796., 10743., 11976., 10905., 12156.};
  const std::array<int, 4> in_shape = {{3, 4, 6, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x4x6x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      952.,   984.,   1124.,  1160.,  1490.,  1544.,  1748.,  1808.,  1766.,
      1832.,  2048.,  2120.,  2042.,  2120.,  2348.,  2432.,  2318.,  2408.,
      2648.,  2744.,  1496.,  1560.,  1716.,  1784.,  2184.,  2268.,  2478.,
      2568.,  3207.,  3342.,  3648.,  3792.,  3513.,  3666.,  3990.,  4152.,
      3819.,  3990.,  4332.,  4512.,  4125.,  4314.,  4674.,  4872.,  2568.,
      2700.,  2934.,  3072.,  3552.,  3708.,  3990.,  4152.,  5043.,  5286.,
      5700.,  5952.,  5349.,  5610.,  6042.,  6312.,  5655.,  5934.,  6384.,
      6672.,  5961.,  6258.,  6726.,  7032.,  3648.,  3852.,  4158.,  4368.,
      1816.,  1944.,  2132.,  2264.,  2426.,  2624.,  2900.,  3104.,  2558.,
      2768.,  3056.,  3272.,  2690.,  2912.,  3212.,  3440.,  2822.,  3056.,
      3368.,  3608.,  1592.,  1752.,  1956.,  2120.,  5752.,  5976.,  6308.,
      6536.,  8114.,  8456.,  8948.,  9296.,  8390.,  8744.,  9248.,  9608.,
      8666.,  9032.,  9548.,  9920.,  8942.,  9320.,  9848.,  10232., 5528.,
      5784.,  6132.,  6392.,  7656.,  8028.,  8526.,  8904.,  10551., 11118.,
      11856., 12432., 10857., 11442., 12198., 12792., 11163., 11766., 12540.,
      13152., 11469., 12090., 12882., 13512., 6888.,  7308.,  7830.,  8256.,
      9024.,  9468.,  10038., 10488., 12387., 13062., 13908., 14592., 12693.,
      13386., 14250., 14952., 12999., 13710., 14592., 15312., 13305., 14034.,
      14934., 15672., 7968.,  8460.,  9054.,  9552.,  4312.,  4632.,  5012.,
      5336.,  5594.,  6080.,  6644.,  7136.,  5726.,  6224.,  6800.,  7304.,
      5858.,  6368.,  6956.,  7472.,  5990.,  6512.,  7112.,  7640.,  3320.,
      3672.,  4068.,  4424.,  10552., 10968., 11492., 11912., 14738., 15368.,
      16148., 16784., 15014., 15656., 16448., 17096., 15290., 15944., 16748.,
      17408., 15566., 16232., 17048., 17720., 9560.,  10008., 10548., 11000.,
      13128., 13788., 14574., 15240., 17895., 18894., 20064., 21072., 18201.,
      19218., 20406., 21432., 18507., 19542., 20748., 21792., 18813., 19866.,
      21090., 22152., 11208., 11916., 12726., 13440., 14496., 15228., 16086.,
      16824., 19731., 20838., 22116., 23232., 20037., 21162., 22458., 23592.,
      20343., 21486., 22800., 23952., 20649., 21810., 23142., 24312., 12288.,
      13068., 13950., 14736., 6808.,  7320.,  7892.,  8408.,  8762.,  9536.,
      10388., 11168., 8894.,  9680.,  10544., 11336., 9026.,  9824.,  10700.,
      11504., 9158.,  9968.,  10856., 11672., 5048.,  5592.,  6180.,  6728.};
  const std::array<int, 4> in_shape = {{3, 4, 6, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x4x6x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3207.,  3342.,  3648.,  3792.,  3513.,  3666.,  3990.,  4152.,  3819.,
      3990.,  4332.,  4512.,  4125.,  4314.,  4674.,  4872.,  5043.,  5286.,
      5700.,  5952.,  5349.,  5610.,  6042.,  6312.,  5655.,  5934.,  6384.,
      6672.,  5961.,  6258.,  6726.,  7032.,  10551., 11118., 11856., 12432.,
      10857., 11442., 12198., 12792., 11163., 11766., 12540., 13152., 11469.,
      12090., 12882., 13512., 12387., 13062., 13908., 14592., 12693., 13386.,
      14250., 14952., 12999., 13710., 14592., 15312., 13305., 14034., 14934.,
      15672., 17895., 18894., 20064., 21072., 18201., 19218., 20406., 21432.,
      18507., 19542., 20748., 21792., 18813., 19866., 21090., 22152., 19731.,
      20838., 22116., 23232., 20037., 21162., 22458., 23592., 20343., 21486.,
      22800., 23952., 20649., 21810., 23142., 24312.};
  const std::array<int, 4> in_shape = {{3, 4, 6, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x4x6x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1872.,  1904.,  1936.,  1968.,  2212.,  2248.,  2284.,  2320.,  2926.,
      2980.,  3034.,  3088.,  3436.,  3496.,  3556.,  3616.,  3466.,  3532.,
      3598.,  3664.,  4024.,  4096.,  4168.,  4240.,  4006.,  4084.,  4162.,
      4240.,  4612.,  4696.,  4780.,  4864.,  4546.,  4636.,  4726.,  4816.,
      5200.,  5296.,  5392.,  5488.,  2928.,  2992.,  3056.,  3120.,  3364.,
      3432.,  3500.,  3568.,  4284.,  4368.,  4452.,  4536.,  4866.,  4956.,
      5046.,  5136.,  6279.,  6414.,  6549.,  6684.,  7152.,  7296.,  7440.,
      7584.,  6873.,  7026.,  7179.,  7332.,  7818.,  7980.,  8142.,  8304.,
      7467.,  7638.,  7809.,  7980.,  8484.,  8664.,  8844.,  9024.,  8061.,
      8250.,  8439.,  8628.,  9150.,  9348.,  9546.,  9744.,  5004.,  5136.,
      5268.,  5400.,  5730.,  5868.,  6006.,  6144.,  6948.,  7104.,  7260.,
      7416.,  7818.,  7980.,  8142.,  8304.,  9843.,  10086., 10329., 10572.,
      11148., 11400., 11652., 11904., 10437., 10698., 10959., 11220., 11814.,
      12084., 12354., 12624., 11031., 11310., 11589., 11868., 12480., 12768.,
      13056., 13344., 11625., 11922., 12219., 12516., 13146., 13452., 13758.,
      14064., 7092.,  7296.,  7500.,  7704.,  8106.,  8316.,  8526.,  8736.,
      3504.,  3632.,  3760.,  3888.,  4132.,  4264.,  4396.,  4528.,  4654.,
      4852.,  5050.,  5248.,  5596.,  5800.,  6004.,  6208.,  4906.,  5116.,
      5326.,  5536.,  5896.,  6112.,  6328.,  6544.,  5158.,  5380.,  5602.,
      5824.,  6196.,  6424.,  6652.,  6880.,  5410.,  5644.,  5878.,  6112.,
      6496.,  6736.,  6976.,  7216.,  3024.,  3184.,  3344.,  3504.,  3748.,
      3912.,  4076.,  4240.,  11280., 11504., 11728., 11952., 12388., 12616.,
      12844., 13072., 15886., 16228., 16570., 16912., 17548., 17896., 18244.,
      18592., 16426., 16780., 17134., 17488., 18136., 18496., 18856., 19216.,
      16966., 17332., 17698., 18064., 18724., 19096., 19468., 19840., 17506.,
      17884., 18262., 18640., 19312., 19696., 20080., 20464., 10800., 11056.,
      11312., 11568., 12004., 12264., 12524., 12784., 14940., 15312., 15684.,
      16056., 16674., 17052., 17430., 17808., 20535., 21102., 21669., 22236.,
      23136., 23712., 24288., 24864., 21129., 21714., 22299., 22884., 23802.,
      24396., 24990., 25584., 21723., 22326., 22929., 23532., 24468., 25080.,
      25692., 26304., 22317., 22938., 23559., 24180., 25134., 25764., 26394.,
      27024., 13356., 13776., 14196., 14616., 15234., 15660., 16086., 16512.,
      17604., 18048., 18492., 18936., 19626., 20076., 20526., 20976., 24099.,
      24774., 25449., 26124., 27132., 27816., 28500., 29184., 24693., 25386.,
      26079., 26772., 27798., 28500., 29202., 29904., 25287., 25998., 26709.,
      27420., 28464., 29184., 29904., 30624., 25881., 26610., 27339., 28068.,
      29130., 29868., 30606., 31344., 15444., 15936., 16428., 16920., 17610.,
      18108., 18606., 19104., 8304.,  8624.,  8944.,  9264.,  9700.,  10024.,
      10348., 10672., 10702., 11188., 11674., 12160., 12796., 13288., 13780.,
      14272., 10954., 11452., 11950., 12448., 13096., 13600., 14104., 14608.,
      11206., 11716., 12226., 12736., 13396., 13912., 14428., 14944., 11458.,
      11980., 12502., 13024., 13696., 14224., 14752., 15280., 6288.,  6640.,
      6992.,  7344.,  7780.,  8136.,  8492.,  8848.,  20688., 21104., 21520.,
      21936., 22564., 22984., 23404., 23824., 28846., 29476., 30106., 30736.,
      31660., 32296., 32932., 33568., 29386., 30028., 30670., 31312., 32248.,
      32896., 33544., 34192., 29926., 30580., 31234., 31888., 32836., 33496.,
      34156., 34816., 30466., 31132., 31798., 32464., 33424., 34096., 34768.,
      35440., 18672., 19120., 19568., 20016., 20644., 21096., 21548., 22000.,
      25596., 26256., 26916., 27576., 28482., 29148., 29814., 30480., 34791.,
      35790., 36789., 37788., 39120., 40128., 41136., 42144., 35385., 36402.,
      37419., 38436., 39786., 40812., 41838., 42864., 35979., 37014., 38049.,
      39084., 40452., 41496., 42540., 43584., 36573., 37626., 38679., 39732.,
      41118., 42180., 43242., 44304., 21708., 22416., 23124., 23832., 24738.,
      25452., 26166., 26880., 28260., 28992., 29724., 30456., 31434., 32172.,
      32910., 33648., 38355., 39462., 40569., 41676., 43116., 44232., 45348.,
      46464., 38949., 40074., 41199., 42324., 43782., 44916., 46050., 47184.,
      39543., 40686., 41829., 42972., 44448., 45600., 46752., 47904., 40137.,
      41298., 42459., 43620., 45114., 46284., 47454., 48624., 23796., 24576.,
      25356., 26136., 27114., 27900., 28686., 29472., 13104., 13616., 14128.,
      14640., 15268., 15784., 16300., 16816., 16750., 17524., 18298., 19072.,
      19996., 20776., 21556., 22336., 17002., 17788., 18574., 19360., 20296.,
      21088., 21880., 22672., 17254., 18052., 18850., 19648., 20596., 21400.,
      22204., 23008., 17506., 18316., 19126., 19936., 20896., 21712., 22528.,
      23344., 9552.,  10096., 10640., 11184., 11812., 12360., 12908., 13456.};
  const std::array<int, 4> in_shape = {{3, 4, 6, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x4x6x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6279.,  6414.,  6549.,  6684.,  7152.,  7296.,  7440.,  7584.,  6873.,
      7026.,  7179.,  7332.,  7818.,  7980.,  8142.,  8304.,  7467.,  7638.,
      7809.,  7980.,  8484.,  8664.,  8844.,  9024.,  8061.,  8250.,  8439.,
      8628.,  9150.,  9348.,  9546.,  9744.,  9843.,  10086., 10329., 10572.,
      11148., 11400., 11652., 11904., 10437., 10698., 10959., 11220., 11814.,
      12084., 12354., 12624., 11031., 11310., 11589., 11868., 12480., 12768.,
      13056., 13344., 11625., 11922., 12219., 12516., 13146., 13452., 13758.,
      14064., 20535., 21102., 21669., 22236., 23136., 23712., 24288., 24864.,
      21129., 21714., 22299., 22884., 23802., 24396., 24990., 25584., 21723.,
      22326., 22929., 23532., 24468., 25080., 25692., 26304., 22317., 22938.,
      23559., 24180., 25134., 25764., 26394., 27024., 24099., 24774., 25449.,
      26124., 27132., 27816., 28500., 29184., 24693., 25386., 26079., 26772.,
      27798., 28500., 29202., 29904., 25287., 25998., 26709., 27420., 28464.,
      29184., 29904., 30624., 25881., 26610., 27339., 28068., 29130., 29868.,
      30606., 31344., 34791., 35790., 36789., 37788., 39120., 40128., 41136.,
      42144., 35385., 36402., 37419., 38436., 39786., 40812., 41838., 42864.,
      35979., 37014., 38049., 39084., 40452., 41496., 42540., 43584., 36573.,
      37626., 38679., 39732., 41118., 42180., 43242., 44304., 38355., 39462.,
      40569., 41676., 43116., 44232., 45348., 46464., 38949., 40074., 41199.,
      42324., 43782., 44916., 46050., 47184., 39543., 40686., 41829., 42972.,
      44448., 45600., 46752., 47904., 40137., 41298., 42459., 43620., 45114.,
      46284., 47454., 48624.};
  const std::array<int, 4> in_shape = {{3, 4, 6, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x4x6x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1804.,  1968.,  2140.,  2320.,  2842.,  3088.,  3346.,  3616.,  3394.,
      3664.,  3946.,  4240.,  3946.,  4240.,  4546.,  4864.,  4498.,  4816.,
      5146.,  5488.,  2908.,  3120.,  3340.,  3568.,  4254.,  4536.,  4830.,
      5136.,  6261.,  6684.,  7125.,  7584.,  6873.,  7332.,  7809.,  8304.,
      7485.,  7980.,  8493.,  9024.,  8097.,  8628.,  9177.,  9744.,  5046.,
      5400.,  5766.,  6144.,  6990.,  7416.,  7854.,  8304.,  9933.,  10572.,
      11229., 11904., 10545., 11220., 11913., 12624., 11157., 11868., 12597.,
      13344., 11769., 12516., 13281., 14064., 7206.,  7704.,  8214.,  8736.,
      3580.,  3888.,  4204.,  4528.,  4786.,  5248.,  5722.,  6208.,  5050.,
      5536.,  6034.,  6544.,  5314.,  5824.,  6346.,  6880.,  5578.,  6112.,
      6658.,  7216.,  3148.,  3504.,  3868.,  4240.,  11404., 11952., 12508.,
      13072., 16090., 16912., 17746., 18592., 16642., 17488., 18346., 19216.,
      17194., 18064., 18946., 19840., 17746., 18640., 19546., 20464., 10972.,
      11568., 12172., 12784., 15198., 16056., 16926., 17808., 20949., 22236.,
      23541., 24864., 21561., 22884., 24225., 25584., 22173., 23532., 24909.,
      26304., 22785., 24180., 25593., 27024., 13686., 14616., 15558., 16512.,
      17934., 18936., 19950., 20976., 24621., 26124., 27645., 29184., 25233.,
      26772., 28329., 29904., 25845., 27420., 29013., 30624., 26457., 28068.,
      29697., 31344., 15846., 16920., 18006., 19104., 8572.,  9264.,  9964.,
      10672., 11122., 12160., 13210., 14272., 11386., 12448., 13522., 14608.,
      11650., 12736., 13834., 14944., 11914., 13024., 14146., 15280., 6604.,
      7344.,  8092.,  8848.,  21004., 21936., 22876., 23824., 29338., 30736.,
      32146., 33568., 29890., 31312., 32746., 34192., 30442., 31888., 33346.,
      34816., 30994., 32464., 33946., 35440., 19036., 20016., 21004., 22000.,
      26142., 27576., 29022., 30480., 35637., 37788., 39957., 42144., 36249.,
      38436., 40641., 42864., 36861., 39084., 41325., 43584., 37473., 39732.,
      42009., 44304., 22326., 23832., 25350., 26880., 28878., 30456., 32046.,
      33648., 39309., 41676., 44061., 46464., 39921., 42324., 44745., 47184.,
      40533., 42972., 45429., 47904., 41145., 43620., 46113., 48624., 24486.,
      26136., 27798., 29472., 13564., 14640., 15724., 16816., 17458., 19072.,
      20698., 22336., 17722., 19360., 21010., 22672., 17986., 19648., 21322.,
      23008., 18250., 19936., 21634., 23344., 10060., 11184., 12316., 13456.};
  const std::array<int, 4> in_shape = {{3, 4, 6, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x4x6x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6261.,  6684.,  7125.,  7584.,  6873.,  7332.,  7809.,  8304.,  7485.,
      7980.,  8493.,  9024.,  8097.,  8628.,  9177.,  9744.,  9933.,  10572.,
      11229., 11904., 10545., 11220., 11913., 12624., 11157., 11868., 12597.,
      13344., 11769., 12516., 13281., 14064., 20949., 22236., 23541., 24864.,
      21561., 22884., 24225., 25584., 22173., 23532., 24909., 26304., 22785.,
      24180., 25593., 27024., 24621., 26124., 27645., 29184., 25233., 26772.,
      28329., 29904., 25845., 27420., 29013., 30624., 26457., 28068., 29697.,
      31344., 35637., 37788., 39957., 42144., 36249., 38436., 40641., 42864.,
      36861., 39084., 41325., 43584., 37473., 39732., 42009., 44304., 39309.,
      41676., 44061., 46464., 39921., 42324., 44745., 47184., 40533., 42972.,
      45429., 47904., 41145., 43620., 46113., 48624.};
  const std::array<int, 4> in_shape = {{3, 4, 6, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x4x6x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3548.,  3608.,  3872.,  3936.,  4212.,  4280.,  4568.,  4640.,  5582.,
      5684.,  6068.,  6176.,  6578.,  6692.,  7112.,  7232.,  6662.,  6788.,
      7196.,  7328.,  7754.,  7892.,  8336.,  8480.,  7742.,  7892.,  8324.,
      8480.,  8930.,  9092.,  9560.,  9728.,  8822.,  8996.,  9452.,  9632.,
      10106., 10292., 10784., 10976., 5692.,  5816.,  6112.,  6240.,  6548.,
      6680.,  7000.,  7136.,  8346.,  8508.,  8904.,  9072.,  9486.,  9660.,
      10092., 10272., 12261., 12522., 13098., 13368., 13971., 14250., 14880.,
      15168., 13449., 13746., 14358., 14664., 15303., 15618., 16284., 16608.,
      14637., 14970., 15618., 15960., 16635., 16986., 17688., 18048., 15825.,
      16194., 16878., 17256., 17967., 18354., 19092., 19488., 9834.,  10092.,
      10536., 10800., 11262., 11532., 12012., 12288., 13674., 13980., 14520.,
      14832., 15390., 15708., 16284., 16608., 19389., 19866., 20658., 21144.,
      21963., 22458., 23304., 23808., 20577., 21090., 21918., 22440., 23295.,
      23826., 24708., 25248., 21765., 22314., 23178., 23736., 24627., 25194.,
      26112., 26688., 22953., 23538., 24438., 25032., 25959., 26562., 27516.,
      28128., 14010., 14412., 15000., 15408., 16014., 16428., 17052., 17472.,
      6908.,  7160.,  7520.,  7776.,  8148.,  8408.,  8792.,  9056.,  9182.,
      9572.,  10100., 10496., 11042., 11444., 12008., 12416., 9686.,  10100.,
      10652., 11072., 11642., 12068., 12656., 13088., 10190., 10628., 11204.,
      11648., 12242., 12692., 13304., 13760., 10694., 11156., 11756., 12224.,
      12842., 13316., 13952., 14432., 5980.,  6296.,  6688.,  7008.,  7412.,
      7736.,  8152.,  8480.,  22364., 22808., 23456., 23904., 24564., 25016.,
      25688., 26144., 31502., 32180., 33140., 33824., 34802., 35492., 36488.,
      37184., 32582., 33284., 34268., 34976., 35978., 36692., 37712., 38432.,
      33662., 34388., 35396., 36128., 37154., 37892., 38936., 39680., 34742.,
      35492., 36524., 37280., 38330., 39092., 40160., 40928., 21436., 21944.,
      22624., 23136., 23828., 24344., 25048., 25568., 29658., 30396., 31368.,
      32112., 33102., 33852., 34860., 35616., 40773., 41898., 43338., 44472.,
      45939., 47082., 48576., 49728., 41961., 43122., 44598., 45768., 47271.,
      48450., 49980., 51168., 43149., 44346., 45858., 47064., 48603., 49818.,
      51384., 52608., 44337., 45570., 47118., 48360., 49935., 51186., 52788.,
      54048., 26538., 27372., 28392., 29232., 30270., 31116., 32172., 33024.,
      34986., 35868., 36984., 37872., 39006., 39900., 41052., 41952., 47901.,
      49242., 50898., 52248., 53931., 55290., 57000., 58368., 49089., 50466.,
      52158., 53544., 55263., 56658., 58404., 59808., 50277., 51690., 53418.,
      54840., 56595., 58026., 59808., 61248., 51465., 52914., 54678., 56136.,
      57927., 59394., 61212., 62688., 30714., 31692., 32856., 33840., 35022.,
      36012., 37212., 38208., 16508., 17144., 17888., 18528., 19284., 19928.,
      20696., 21344., 21278., 22244., 23348., 24320., 25442., 26420., 27560.,
      28544., 21782., 22772., 23900., 24896., 26042., 27044., 28208., 29216.,
      22286., 23300., 24452., 25472., 26642., 27668., 28856., 29888., 22790.,
      23828., 25004., 26048., 27242., 28292., 29504., 30560., 12508., 13208.,
      13984., 14688., 15476., 16184., 16984., 17696., 41180., 42008., 43040.,
      43872., 44916., 45752., 46808., 47648., 57422., 58676., 60212., 61472.,
      63026., 64292., 65864., 67136., 58502., 59780., 61340., 62624., 64202.,
      65492., 67088., 68384., 59582., 60884., 62468., 63776., 65378., 66692.,
      68312., 69632., 60662., 61988., 63596., 64928., 66554., 67892., 69536.,
      70880., 37180., 38072., 39136., 40032., 41108., 42008., 43096., 44000.,
      50970., 52284., 53832., 55152., 56718., 58044., 59628., 60960., 69285.,
      71274., 73578., 75576., 77907., 79914., 82272., 84288., 70473., 72498.,
      74838., 76872., 79239., 81282., 83676., 85728., 71661., 73722., 76098.,
      78168., 80571., 82650., 85080., 87168., 72849., 74946., 77358., 79464.,
      81903., 84018., 86484., 88608., 43242., 44652., 46248., 47664., 49278.,
      50700., 52332., 53760., 56298., 57756., 59448., 60912., 62622., 64092.,
      65820., 67296., 76413., 78618., 81138., 83352., 85899., 88122., 90696.,
      92928., 77601., 79842., 82398., 84648., 87231., 89490., 92100., 94368.,
      78789., 81066., 83658., 85944., 88563., 90858., 93504., 95808., 79977.,
      82290., 84918., 87240., 89895., 92226., 94908., 97248., 47418., 48972.,
      50712., 52272., 54030., 55596., 57372., 58944., 26108., 27128., 28256.,
      29280., 30420., 31448., 32600., 33632., 33374., 34916., 36596., 38144.,
      39842., 41396., 43112., 44672., 33878., 35444., 37148., 38720., 40442.,
      42020., 43760., 45344., 34382., 35972., 37700., 39296., 41042., 42644.,
      44408., 46016., 34886., 36500., 38252., 39872., 41642., 43268., 45056.,
      46688., 19036., 20120., 21280., 22368., 23540., 24632., 25816., 26912.};
  const std::array<int, 4> in_shape = {{3, 4, 6, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x4x6x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      12261., 12522., 13098., 13368., 13971., 14250., 14880., 15168., 13449.,
      13746., 14358., 14664., 15303., 15618., 16284., 16608., 14637., 14970.,
      15618., 15960., 16635., 16986., 17688., 18048., 15825., 16194., 16878.,
      17256., 17967., 18354., 19092., 19488., 19389., 19866., 20658., 21144.,
      21963., 22458., 23304., 23808., 20577., 21090., 21918., 22440., 23295.,
      23826., 24708., 25248., 21765., 22314., 23178., 23736., 24627., 25194.,
      26112., 26688., 22953., 23538., 24438., 25032., 25959., 26562., 27516.,
      28128., 40773., 41898., 43338., 44472., 45939., 47082., 48576., 49728.,
      41961., 43122., 44598., 45768., 47271., 48450., 49980., 51168., 43149.,
      44346., 45858., 47064., 48603., 49818., 51384., 52608., 44337., 45570.,
      47118., 48360., 49935., 51186., 52788., 54048., 47901., 49242., 50898.,
      52248., 53931., 55290., 57000., 58368., 49089., 50466., 52158., 53544.,
      55263., 56658., 58404., 59808., 50277., 51690., 53418., 54840., 56595.,
      58026., 59808., 61248., 51465., 52914., 54678., 56136., 57927., 59394.,
      61212., 62688., 69285., 71274., 73578., 75576., 77907., 79914., 82272.,
      84288., 70473., 72498., 74838., 76872., 79239., 81282., 83676., 85728.,
      71661., 73722., 76098., 78168., 80571., 82650., 85080., 87168., 72849.,
      74946., 77358., 79464., 81903., 84018., 86484., 88608., 76413., 78618.,
      81138., 83352., 85899., 88122., 90696., 92928., 77601., 79842., 82398.,
      84648., 87231., 89490., 92100., 94368., 78789., 81066., 83658., 85944.,
      88563., 90858., 93504., 95808., 79977., 82290., 84918., 87240., 89895.,
      92226., 94908., 97248.};
  const std::array<int, 4> in_shape = {{3, 4, 6, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x4x6x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      7036.,   7096.,   7156.,   7216.,   7680.,   7744.,   7808.,   7872.,
      8356.,   8424.,   8492.,   8560.,   9064.,   9136.,   9208.,   9280.,
      11062.,  11164.,  11266.,  11368.,  12028.,  12136.,  12244.,  12352.,
      13042.,  13156.,  13270.,  13384.,  14104.,  14224.,  14344.,  14464.,
      13198.,  13324.,  13450.,  13576.,  14260.,  14392.,  14524.,  14656.,
      15370.,  15508.,  15646.,  15784.,  16528.,  16672.,  16816.,  16960.,
      15334.,  15484.,  15634.,  15784.,  16492.,  16648.,  16804.,  16960.,
      17698.,  17860.,  18022.,  18184.,  18952.,  19120.,  19288.,  19456.,
      17470.,  17644.,  17818.,  17992.,  18724.,  18904.,  19084.,  19264.,
      20026.,  20212.,  20398.,  20584.,  21376.,  21568.,  21760.,  21952.,
      11260.,  11384.,  11508.,  11632.,  12096.,  12224.,  12352.,  12480.,
      12964.,  13096.,  13228.,  13360.,  13864.,  14000.,  14136.,  14272.,
      16530.,  16692.,  16854.,  17016.,  17640.,  17808.,  17976.,  18144.,
      18798.,  18972.,  19146.,  19320.,  20004.,  20184.,  20364.,  20544.,
      24261.,  24522.,  24783.,  25044.,  25926.,  26196.,  26466.,  26736.,
      27663.,  27942.,  28221.,  28500.,  29472.,  29760.,  30048.,  30336.,
      26601.,  26898.,  27195.,  27492.,  28410.,  28716.,  29022.,  29328.,
      30291.,  30606.,  30921.,  31236.,  32244.,  32568.,  32892.,  33216.,
      28941.,  29274.,  29607.,  29940.,  30894.,  31236.,  31578.,  31920.,
      32919.,  33270.,  33621.,  33972.,  35016.,  35376.,  35736.,  36096.,
      31281.,  31650.,  32019.,  32388.,  33378.,  33756.,  34134.,  34512.,
      35547.,  35934.,  36321.,  36708.,  37788.,  38184.,  38580.,  38976.,
      19410.,  19668.,  19926.,  20184.,  20808.,  21072.,  21336.,  21600.,
      22254.,  22524.,  22794.,  23064.,  23748.,  24024.,  24300.,  24576.,
      27042.,  27348.,  27654.,  27960.,  28728.,  29040.,  29352.,  29664.,
      30462.,  30780.,  31098.,  31416.,  32244.,  32568.,  32892.,  33216.,
      38301.,  38778.,  39255.,  39732.,  40830.,  41316.,  41802.,  42288.,
      43431.,  43926.,  44421.,  44916.,  46104.,  46608.,  47112.,  47616.,
      40641.,  41154.,  41667.,  42180.,  43314.,  43836.,  44358.,  44880.,
      46059.,  46590.,  47121.,  47652.,  48876.,  49416.,  49956.,  50496.,
      42981.,  43530.,  44079.,  44628.,  45798.,  46356.,  46914.,  47472.,
      48687.,  49254.,  49821.,  50388.,  51648.,  52224.,  52800.,  53376.,
      45321.,  45906.,  46491.,  47076.,  48282.,  48876.,  49470.,  50064.,
      51315.,  51918.,  52521.,  53124.,  54420.,  55032.,  55644.,  56256.,
      27618.,  28020.,  28422.,  28824.,  29592.,  30000.,  30408.,  30816.,
      31614.,  32028.,  32442.,  32856.,  33684.,  34104.,  34524.,  34944.,
      13564.,  13816.,  14068.,  14320.,  14784.,  15040.,  15296.,  15552.,
      16036.,  16296.,  16556.,  16816.,  17320.,  17584.,  17848.,  18112.,
      17974.,  18364.,  18754.,  19144.,  19804.,  20200.,  20596.,  20992.,
      21682.,  22084.,  22486.,  22888.,  23608.,  24016.,  24424.,  24832.,
      18958.,  19372.,  19786.,  20200.,  20884.,  21304.,  21724.,  22144.,
      22858.,  23284.,  23710.,  24136.,  24880.,  25312.,  25744.,  26176.,
      19942.,  20380.,  20818.,  21256.,  21964.,  22408.,  22852.,  23296.,
      24034.,  24484.,  24934.,  25384.,  26152.,  26608.,  27064.,  27520.,
      20926.,  21388.,  21850.,  22312.,  23044.,  23512.,  23980.,  24448.,
      25210.,  25684.,  26158.,  26632.,  27424.,  27904.,  28384.,  28864.,
      11644.,  11960.,  12276.,  12592.,  13056.,  13376.,  13696.,  14016.,
      14500.,  14824.,  15148.,  15472.,  15976.,  16304.,  16632.,  16960.,
      44284.,  44728.,  45172.,  45616.,  46464.,  46912.,  47360.,  47808.,
      48676.,  49128.,  49580.,  50032.,  50920.,  51376.,  51832.,  52288.,
      62326.,  63004.,  63682.,  64360.,  65596.,  66280.,  66964.,  67648.,
      68914.,  69604.,  70294.,  70984.,  72280.,  72976.,  73672.,  74368.,
      64462.,  65164.,  65866.,  66568.,  67828.,  68536.,  69244.,  69952.,
      71242.,  71956.,  72670.,  73384.,  74704.,  75424.,  76144.,  76864.,
      66598.,  67324.,  68050.,  68776.,  70060.,  70792.,  71524.,  72256.,
      73570.,  74308.,  75046.,  75784.,  77128.,  77872.,  78616.,  79360.,
      68734.,  69484.,  70234.,  70984.,  72292.,  73048.,  73804.,  74560.,
      75898.,  76660.,  77422.,  78184.,  79552.,  80320.,  81088.,  81856.,
      42364.,  42872.,  43380.,  43888.,  44736.,  45248.,  45760.,  46272.,
      47140.,  47656.,  48172.,  48688.,  49576.,  50096.,  50616.,  51136.,
      58578.,  59316.,  60054.,  60792.,  61992.,  62736.,  63480.,  64224.,
      65454.,  66204.,  66954.,  67704.,  68964.,  69720.,  70476.,  71232.,
      80421.,  81546.,  82671.,  83796.,  85542.,  86676.,  87810.,  88944.,
      90735.,  91878.,  93021.,  94164.,  96000.,  97152.,  98304.,  99456.,
      82761.,  83922.,  85083.,  86244.,  88026.,  89196.,  90366.,  91536.,
      93363.,  94542.,  95721.,  96900.,  98772.,  99960.,  101148., 102336.,
      85101.,  86298.,  87495.,  88692.,  90510.,  91716.,  92922.,  94128.,
      95991.,  97206.,  98421.,  99636.,  101544., 102768., 103992., 105216.,
      87441.,  88674.,  89907.,  91140.,  92994.,  94236.,  95478.,  96720.,
      98619.,  99870.,  101121., 102372., 104316., 105576., 106836., 108096.,
      52242.,  53076.,  53910.,  54744.,  55944.,  56784.,  57624.,  58464.,
      59694.,  60540.,  61386.,  62232.,  63492.,  64344.,  65196.,  66048.,
      69090.,  69972.,  70854.,  71736.,  73080.,  73968.,  74856.,  75744.,
      77118.,  78012.,  78906.,  79800.,  81204.,  82104.,  83004.,  83904.,
      94461.,  95802.,  97143.,  98484.,  100446., 101796., 103146., 104496.,
      106503., 107862., 109221., 110580., 112632., 114000., 115368., 116736.,
      96801.,  98178.,  99555.,  100932., 102930., 104316., 105702., 107088.,
      109131., 110526., 111921., 113316., 115404., 116808., 118212., 119616.,
      99141.,  100554., 101967., 103380., 105414., 106836., 108258., 109680.,
      111759., 113190., 114621., 116052., 118176., 119616., 121056., 122496.,
      101481., 102930., 104379., 105828., 107898., 109356., 110814., 112272.,
      114387., 115854., 117321., 118788., 120948., 122424., 123900., 125376.,
      60450.,  61428.,  62406.,  63384.,  64728.,  65712.,  66696.,  67680.,
      69054.,  70044.,  71034.,  72024.,  73428.,  74424.,  75420.,  76416.,
      32380.,  33016.,  33652.,  34288.,  35136.,  35776.,  36416.,  37056.,
      37924.,  38568.,  39212.,  39856.,  40744.,  41392.,  42040.,  42688.,
      41590.,  42556.,  43522.,  44488.,  45724.,  46696.,  47668.,  48640.,
      49906.,  50884.,  51862.,  52840.,  54136.,  55120.,  56104.,  57088.,
      42574.,  43564.,  44554.,  45544.,  46804.,  47800.,  48796.,  49792.,
      51082.,  52084.,  53086.,  54088.,  55408.,  56416.,  57424.,  58432.,
      43558.,  44572.,  45586.,  46600.,  47884.,  48904.,  49924.,  50944.,
      52258.,  53284.,  54310.,  55336.,  56680.,  57712.,  58744.,  59776.,
      44542.,  45580.,  46618.,  47656.,  48964.,  50008.,  51052.,  52096.,
      53434.,  54484.,  55534.,  56584.,  57952.,  59008.,  60064.,  61120.,
      24316.,  25016.,  25716.,  26416.,  27264.,  27968.,  28672.,  29376.,
      30244.,  30952.,  31660.,  32368.,  33256.,  33968.,  34680.,  35392.,
      81532.,  82360.,  83188.,  84016.,  85248.,  86080.,  86912.,  87744.,
      88996.,  89832.,  90668.,  91504.,  92776.,  93616.,  94456.,  95296.,
      113590., 114844., 116098., 117352., 119164., 120424., 121684., 122944.,
      124786., 126052., 127318., 128584., 130456., 131728., 133000., 134272.,
      115726., 117004., 118282., 119560., 121396., 122680., 123964., 125248.,
      127114., 128404., 129694., 130984., 132880., 134176., 135472., 136768.,
      117862., 119164., 120466., 121768., 123628., 124936., 126244., 127552.,
      129442., 130756., 132070., 133384., 135304., 136624., 137944., 139264.,
      119998., 121324., 122650., 123976., 125860., 127192., 128524., 129856.,
      131770., 133108., 134446., 135784., 137728., 139072., 140416., 141760.,
      73468.,  74360.,  75252.,  76144.,  77376.,  78272.,  79168.,  80064.,
      81316.,  82216.,  83116.,  84016.,  85288.,  86192.,  87096.,  88000.,
      100626., 101940., 103254., 104568., 106344., 107664., 108984., 110304.,
      112110., 113436., 114762., 116088., 117924., 119256., 120588., 121920.,
      136581., 138570., 140559., 142548., 145158., 147156., 149154., 151152.,
      153807., 155814., 157821., 159828., 162528., 164544., 166560., 168576.,
      138921., 140946., 142971., 144996., 147642., 149676., 151710., 153744.,
      156435., 158478., 160521., 162564., 165300., 167352., 169404., 171456.,
      141261., 143322., 145383., 147444., 150126., 152196., 154266., 156336.,
      159063., 161142., 163221., 165300., 168072., 170160., 172248., 174336.,
      143601., 145698., 147795., 149892., 152610., 154716., 156822., 158928.,
      161691., 163806., 165921., 168036., 170844., 172968., 175092., 177216.,
      85074.,  86484.,  87894.,  89304.,  91080.,  92496.,  93912.,  95328.,
      97134.,  98556.,  99978.,  101400., 103236., 104664., 106092., 107520.,
      111138., 112596., 114054., 115512., 117432., 118896., 120360., 121824.,
      123774., 125244., 126714., 128184., 130164., 131640., 133116., 134592.,
      150621., 152826., 155031., 157236., 160062., 162276., 164490., 166704.,
      169575., 171798., 174021., 176244., 179160., 181392., 183624., 185856.,
      152961., 155202., 157443., 159684., 162546., 164796., 167046., 169296.,
      172203., 174462., 176721., 178980., 181932., 184200., 186468., 188736.,
      155301., 157578., 159855., 162132., 165030., 167316., 169602., 171888.,
      174831., 177126., 179421., 181716., 184704., 187008., 189312., 191616.,
      157641., 159954., 162267., 164580., 167514., 169836., 172158., 174480.,
      177459., 179790., 182121., 184452., 187476., 189816., 192156., 194496.,
      93282.,  94836.,  96390.,  97944.,  99864.,  101424., 102984., 104544.,
      106494., 108060., 109626., 111192., 113172., 114744., 116316., 117888.,
      51196.,  52216.,  53236.,  54256.,  55488.,  56512.,  57536.,  58560.,
      59812.,  60840.,  61868.,  62896.,  64168.,  65200.,  66232.,  67264.,
      65206.,  66748.,  68290.,  69832.,  71644.,  73192.,  74740.,  76288.,
      78130.,  79684.,  81238.,  82792.,  84664.,  86224.,  87784.,  89344.,
      66190.,  67756.,  69322.,  70888.,  72724.,  74296.,  75868.,  77440.,
      79306.,  80884.,  82462.,  84040.,  85936.,  87520.,  89104.,  90688.,
      67174.,  68764.,  70354.,  71944.,  73804.,  75400.,  76996.,  78592.,
      80482.,  82084.,  83686.,  85288.,  87208.,  88816.,  90424.,  92032.,
      68158.,  69772.,  71386.,  73000.,  74884.,  76504.,  78124.,  79744.,
      81658.,  83284.,  84910.,  86536.,  88480.,  90112.,  91744.,  93376.,
      36988.,  38072.,  39156.,  40240.,  41472.,  42560.,  43648.,  44736.,
      45988.,  47080.,  48172.,  49264.,  50536.,  51632.,  52728.,  53824.};
  const std::array<int, 4> in_shape = {{3, 4, 6, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x4x6x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      24261.,  24522.,  24783.,  25044.,  25926.,  26196.,  26466.,  26736.,
      27663.,  27942.,  28221.,  28500.,  29472.,  29760.,  30048.,  30336.,
      26601.,  26898.,  27195.,  27492.,  28410.,  28716.,  29022.,  29328.,
      30291.,  30606.,  30921.,  31236.,  32244.,  32568.,  32892.,  33216.,
      28941.,  29274.,  29607.,  29940.,  30894.,  31236.,  31578.,  31920.,
      32919.,  33270.,  33621.,  33972.,  35016.,  35376.,  35736.,  36096.,
      31281.,  31650.,  32019.,  32388.,  33378.,  33756.,  34134.,  34512.,
      35547.,  35934.,  36321.,  36708.,  37788.,  38184.,  38580.,  38976.,
      38301.,  38778.,  39255.,  39732.,  40830.,  41316.,  41802.,  42288.,
      43431.,  43926.,  44421.,  44916.,  46104.,  46608.,  47112.,  47616.,
      40641.,  41154.,  41667.,  42180.,  43314.,  43836.,  44358.,  44880.,
      46059.,  46590.,  47121.,  47652.,  48876.,  49416.,  49956.,  50496.,
      42981.,  43530.,  44079.,  44628.,  45798.,  46356.,  46914.,  47472.,
      48687.,  49254.,  49821.,  50388.,  51648.,  52224.,  52800.,  53376.,
      45321.,  45906.,  46491.,  47076.,  48282.,  48876.,  49470.,  50064.,
      51315.,  51918.,  52521.,  53124.,  54420.,  55032.,  55644.,  56256.,
      80421.,  81546.,  82671.,  83796.,  85542.,  86676.,  87810.,  88944.,
      90735.,  91878.,  93021.,  94164.,  96000.,  97152.,  98304.,  99456.,
      82761.,  83922.,  85083.,  86244.,  88026.,  89196.,  90366.,  91536.,
      93363.,  94542.,  95721.,  96900.,  98772.,  99960.,  101148., 102336.,
      85101.,  86298.,  87495.,  88692.,  90510.,  91716.,  92922.,  94128.,
      95991.,  97206.,  98421.,  99636.,  101544., 102768., 103992., 105216.,
      87441.,  88674.,  89907.,  91140.,  92994.,  94236.,  95478.,  96720.,
      98619.,  99870.,  101121., 102372., 104316., 105576., 106836., 108096.,
      94461.,  95802.,  97143.,  98484.,  100446., 101796., 103146., 104496.,
      106503., 107862., 109221., 110580., 112632., 114000., 115368., 116736.,
      96801.,  98178.,  99555.,  100932., 102930., 104316., 105702., 107088.,
      109131., 110526., 111921., 113316., 115404., 116808., 118212., 119616.,
      99141.,  100554., 101967., 103380., 105414., 106836., 108258., 109680.,
      111759., 113190., 114621., 116052., 118176., 119616., 121056., 122496.,
      101481., 102930., 104379., 105828., 107898., 109356., 110814., 112272.,
      114387., 115854., 117321., 118788., 120948., 122424., 123900., 125376.,
      136581., 138570., 140559., 142548., 145158., 147156., 149154., 151152.,
      153807., 155814., 157821., 159828., 162528., 164544., 166560., 168576.,
      138921., 140946., 142971., 144996., 147642., 149676., 151710., 153744.,
      156435., 158478., 160521., 162564., 165300., 167352., 169404., 171456.,
      141261., 143322., 145383., 147444., 150126., 152196., 154266., 156336.,
      159063., 161142., 163221., 165300., 168072., 170160., 172248., 174336.,
      143601., 145698., 147795., 149892., 152610., 154716., 156822., 158928.,
      161691., 163806., 165921., 168036., 170844., 172968., 175092., 177216.,
      150621., 152826., 155031., 157236., 160062., 162276., 164490., 166704.,
      169575., 171798., 174021., 176244., 179160., 181392., 183624., 185856.,
      152961., 155202., 157443., 159684., 162546., 164796., 167046., 169296.,
      172203., 174462., 176721., 178980., 181932., 184200., 186468., 188736.,
      155301., 157578., 159855., 162132., 165030., 167316., 169602., 171888.,
      174831., 177126., 179421., 181716., 184704., 187008., 189312., 191616.,
      157641., 159954., 162267., 164580., 167514., 169836., 172158., 174480.,
      177459., 179790., 182121., 184452., 187476., 189816., 192156., 194496.};
  const std::array<int, 4> in_shape = {{3, 4, 6, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x5x4x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      111.,  178.,  217.,  145.,  231.,  348.,  393.,  252.,  363.,  528.,
      573.,  360.,  495.,  708.,  753.,  468.,  261.,  358.,  379.,  223.,
      671.,  958.,  997.,  625.,  891.,  1248., 1293., 792.,  1023., 1428.,
      1473., 900.,  1155., 1608., 1653., 1008., 581.,  778.,  799.,  463.,
      1231., 1738., 1777., 1105., 1551., 2148., 2193., 1332., 1683., 2328.,
      2373., 1440., 1815., 2508., 2553., 1548., 901.,  1198., 1219., 703.};
  const std::array<int, 4> in_shape = {{3, 5, 4, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x5x4x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      348.,  393.,  528.,  573.,  708.,  753.,  1248., 1293., 1428.,
      1473., 1608., 1653., 2148., 2193., 2328., 2373., 2508., 2553.};
  const std::array<int, 4> in_shape = {{3, 5, 4, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x5x4x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      208.,  222.,  332.,  356.,  404.,  434.,  268.,  290.,  429.,  462.,
      642.,  696.,  723.,  786.,  459.,  504.,  669.,  726.,  966.,  1056.,
      1047., 1146., 651.,  720.,  909.,  990.,  1290., 1416., 1371., 1506.,
      843.,  936.,  460.,  522.,  620.,  716.,  656.,  758.,  376.,  446.,
      1248., 1342., 1772., 1916., 1844., 1994., 1148., 1250., 1629., 1782.,
      2262., 2496., 2343., 2586., 1419., 1584., 1869., 2046., 2586., 2856.,
      2667., 2946., 1611., 1800., 2109., 2310., 2910., 3216., 2991., 3306.,
      1803., 2016., 1020., 1162., 1340., 1556., 1376., 1598., 776.,  926.,
      2288., 2462., 3212., 3476., 3284., 3554., 2028., 2210., 2829., 3102.,
      3882., 4296., 3963., 4386., 2379., 2664., 3069., 3366., 4206., 4656.,
      4287., 4746., 2571., 2880., 3309., 3630., 4530., 5016., 4611., 5106.,
      2763., 3096., 1580., 1802., 2060., 2396., 2096., 2438., 1176., 1406.};
  const std::array<int, 4> in_shape = {{3, 5, 4, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x5x4x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      642.,  696.,  723.,  786.,  966.,  1056., 1047., 1146., 1290.,
      1416., 1371., 1506., 2262., 2496., 2343., 2586., 2586., 2856.,
      2667., 2946., 2910., 3216., 2991., 3306., 3882., 4296., 3963.,
      4386., 4206., 4656., 4287., 4746., 4530., 5016., 4611., 5106.};
  const std::array<int, 4> in_shape = {{3, 5, 4, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x5x4x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      402.,  416.,  430.,  444.,  640.,  664.,   688.,  712.,  778.,  808.,
      838.,  868.,  514.,  536.,  558.,  580.,   825.,  858.,  891.,  924.,
      1230., 1284., 1338., 1392., 1383., 1446.,  1509., 1572., 873.,  918.,
      963.,  1008., 1281., 1338., 1395., 1452.,  1842., 1932., 2022., 2112.,
      1995., 2094., 2193., 2292., 1233., 1302.,  1371., 1440., 1737., 1818.,
      1899., 1980., 2454., 2580., 2706., 2832.,  2607., 2742., 2877., 3012.,
      1593., 1686., 1779., 1872., 858.,  920.,   982.,  1044., 1144., 1240.,
      1336., 1432., 1210., 1312., 1414., 1516.,  682.,  752.,  822.,  892.,
      2402., 2496., 2590., 2684., 3400., 3544.,  3688., 3832., 3538., 3688.,
      3838., 3988., 2194., 2296., 2398., 2500.,  3105., 3258., 3411., 3564.,
      4290., 4524., 4758., 4992., 4443., 4686.,  4929., 5172., 2673., 2838.,
      3003., 3168., 3561., 3738., 3915., 4092.,  4902., 5172., 5442., 5712.,
      5055., 5334., 5613., 5892., 3033., 3222.,  3411., 3600., 4017., 4218.,
      4419., 4620., 5514., 5820., 6126., 6432.,  5667., 5982., 6297., 6612.,
      3393., 3606., 3819., 4032., 1898., 2040.,  2182., 2324., 2464., 2680.,
      2896., 3112., 2530., 2752., 2974., 3196.,  1402., 1552., 1702., 1852.,
      4402., 4576., 4750., 4924., 6160., 6424.,  6688., 6952., 6298., 6568.,
      6838., 7108., 3874., 4056., 4238., 4420.,  5385., 5658., 5931., 6204.,
      7350., 7764., 8178., 8592., 7503., 7926.,  8349., 8772., 4473., 4758.,
      5043., 5328., 5841., 6138., 6435., 6732.,  7962., 8412., 8862., 9312.,
      8115., 8574., 9033., 9492., 4833., 5142.,  5451., 5760., 6297., 6618.,
      6939., 7260., 8574., 9060., 9546., 10032., 8727., 9222., 9717., 10212.,
      5193., 5526., 5859., 6192., 2938., 3160.,  3382., 3604., 3784., 4120.,
      4456., 4792., 3850., 4192., 4534., 4876.,  2122., 2352., 2582., 2812.};
  const std::array<int, 4> in_shape = {{3, 5, 4, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x5x4x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1230., 1284., 1338., 1392., 1383.,  1446., 1509., 1572., 1842.,
      1932., 2022., 2112., 1995., 2094.,  2193., 2292., 2454., 2580.,
      2706., 2832., 2607., 2742., 2877.,  3012., 4290., 4524., 4758.,
      4992., 4443., 4686., 4929., 5172.,  4902., 5172., 5442., 5712.,
      5055., 5334., 5613., 5892., 5514.,  5820., 6126., 6432., 5667.,
      5982., 6297., 6612., 7350., 7764.,  8178., 8592., 7503., 7926.,
      8349., 8772., 7962., 8412., 8862.,  9312., 8115., 8574., 9033.,
      9492., 8574., 9060., 9546., 10032., 8727., 9222., 9717., 10212.};
  const std::array<int, 4> in_shape = {{3, 5, 4, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x5x4x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      364.,  444.,  592.,  712.,  736.,  868.,  492.,  580.,   798.,  924.,
      1203., 1392., 1365., 1572., 870.,  1008., 1278., 1452.,  1851., 2112.,
      2013., 2292., 1254., 1440., 1758., 1980., 2499., 2832.,  2661., 3012.,
      1638., 1872., 892.,  1044., 1204., 1432., 1276., 1516.,  732.,  892.,
      2444., 2684., 3472., 3832., 3616., 3988., 2252., 2500.,  3198., 3564.,
      4443., 4992., 4605., 5172., 2790., 3168., 3678., 4092.,  5091., 5712.,
      5253., 5892., 3174., 3600., 4158., 4620., 5739., 6432.,  5901., 6612.,
      3558., 4032., 2012., 2324., 2644., 3112., 2716., 3196.,  1532., 1852.,
      4524., 4924., 6352., 6952., 6496., 7108., 4012., 4420.,  5598., 6204.,
      7683., 8592., 7845., 8772., 4710., 5328., 6078., 6732.,  8331., 9312.,
      8493., 9492., 5094., 5760., 6558., 7260., 8979., 10032., 9141., 10212.,
      5478., 6192., 3132., 3604., 4084., 4792., 4156., 4876.,  2332., 2812.};
  const std::array<int, 4> in_shape = {{3, 5, 4, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x5x4x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1203., 1392., 1365., 1572., 1851., 2112., 2013.,  2292., 2499.,
      2832., 2661., 3012., 4443., 4992., 4605., 5172.,  5091., 5712.,
      5253., 5892., 5739., 6432., 5901., 6612., 7683.,  8592., 7845.,
      8772., 8331., 9312., 8493., 9492., 8979., 10032., 9141., 10212.};
  const std::array<int, 4> in_shape = {{3, 5, 4, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x5x4x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      704.,   728.,   860.,   888.,   1142.,  1184.,  1376.,  1424.,  1418.,
      1472.,  1676.,  1736.,  944.,   984.,   1116.,  1160.,  1536.,  1596.,
      1782.,  1848.,  2307.,  2406.,  2676.,  2784.,  2613.,  2730.,  3018.,
      3144.,  1656.,  1740.,  1926.,  2016.,  2448.,  2556.,  2790.,  2904.,
      3531.,  3702.,  4044.,  4224.,  3837.,  4026.,  4386.,  4584.,  2376.,
      2508.,  2742.,  2880.,  3360.,  3516.,  3798.,  3960.,  4755.,  4998.,
      5412.,  5664.,  5061.,  5322.,  5754.,  6024.,  3096.,  3276.,  3558.,
      3744.,  1664.,  1784.,  1964.,  2088.,  2222.,  2408.,  2672.,  2864.,
      2354.,  2552.,  2828.,  3032.,  1328.,  1464.,  1644.,  1784.,  4704.,
      4888.,  5180.,  5368.,  6662.,  6944.,  7376.,  7664.,  6938.,  7232.,
      7676.,  7976.,  4304.,  4504.,  4796.,  5000.,  6096.,  6396.,  6822.,
      7128.,  8427.,  8886.,  9516.,  9984.,  8733.,  9210.,  9858.,  10344.,
      5256.,  5580.,  6006.,  6336.,  7008.,  7356.,  7830.,  8184.,  9651.,
      10182., 10884., 11424., 9957.,  10506., 11226., 11784., 5976.,  6348.,
      6822.,  7200.,  7920.,  8316.,  8838.,  9240.,  10875., 11478., 12252.,
      12864., 11181., 11802., 12594., 13224., 6696.,  7116.,  7638.,  8064.,
      3744.,  4024.,  4364.,  4648.,  4862.,  5288.,  5792.,  6224.,  4994.,
      5432.,  5948.,  6392.,  2768.,  3064.,  3404.,  3704.,  8704.,  9048.,
      9500.,  9848.,  12182., 12704., 13376., 13904., 12458., 12992., 13676.,
      14216., 7664.,  8024.,  8476.,  8840.,  10656., 11196., 11862., 12408.,
      14547., 15366., 16356., 17184., 14853., 15690., 16698., 17544., 8856.,
      9420.,  10086., 10656., 11568., 12156., 12870., 13464., 15771., 16662.,
      17724., 18624., 16077., 16986., 18066., 18984., 9576.,  10188., 10902.,
      11520., 12480., 13116., 13878., 14520., 16995., 17958., 19092., 20064.,
      17301., 18282., 19434., 20424., 10296., 10956., 11718., 12384., 5824.,
      6264.,  6764.,  7208.,  7502.,  8168.,  8912.,  9584.,  7634.,  8312.,
      9068.,  9752.,  4208.,  4664.,  5164.,  5624.};
  const std::array<int, 4> in_shape = {{3, 5, 4, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x5x4x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2307.,  2406.,  2676.,  2784.,  2613.,  2730.,  3018.,  3144.,  3531.,
      3702.,  4044.,  4224.,  3837.,  4026.,  4386.,  4584.,  4755.,  4998.,
      5412.,  5664.,  5061.,  5322.,  5754.,  6024.,  8427.,  8886.,  9516.,
      9984.,  8733.,  9210.,  9858.,  10344., 9651.,  10182., 10884., 11424.,
      9957.,  10506., 11226., 11784., 10875., 11478., 12252., 12864., 11181.,
      11802., 12594., 13224., 14547., 15366., 16356., 17184., 14853., 15690.,
      16698., 17544., 15771., 16662., 17724., 18624., 16077., 16986., 18066.,
      18984., 16995., 17958., 19092., 20064., 17301., 18282., 19434., 20424.};
  const std::array<int, 4> in_shape = {{3, 5, 4, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x5x4x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1384.,  1408.,  1432.,  1456.,  1692.,  1720.,  1748.,  1776.,  2242.,
      2284.,  2326.,  2368.,  2704.,  2752.,  2800.,  2848.,  2782.,  2836.,
      2890.,  2944.,  3292.,  3352.,  3412.,  3472.,  1848.,  1888.,  1928.,
      1968.,  2188.,  2232.,  2276.,  2320.,  3012.,  3072.,  3132.,  3192.,
      3498.,  3564.,  3630.,  3696.,  4515.,  4614.,  4713.,  4812.,  5244.,
      5352.,  5460.,  5568.,  5109.,  5226.,  5343.,  5460.,  5910.,  6036.,
      6162.,  6288.,  3228.,  3312.,  3396.,  3480.,  3762.,  3852.,  3942.,
      4032.,  4788.,  4896.,  5004.,  5112.,  5466.,  5580.,  5694.,  5808.,
      6891.,  7062.,  7233.,  7404.,  7908.,  8088.,  8268.,  8448.,  7485.,
      7674.,  7863.,  8052.,  8574.,  8772.,  8970.,  9168.,  4620.,  4752.,
      4884.,  5016.,  5346.,  5484.,  5622.,  5760.,  6564.,  6720.,  6876.,
      7032.,  7434.,  7596.,  7758.,  7920.,  9267.,  9510.,  9753.,  9996.,
      10572., 10824., 11076., 11328., 9861.,  10122., 10383., 10644., 11238.,
      11508., 11778., 12048., 6012.,  6192.,  6372.,  6552.,  6930.,  7116.,
      7302.,  7488.,  3208.,  3328.,  3448.,  3568.,  3804.,  3928.,  4052.,
      4176.,  4258.,  4444.,  4630.,  4816.,  5152.,  5344.,  5536.,  5728.,
      4510.,  4708.,  4906.,  5104.,  5452.,  5656.,  5860.,  6064.,  2520.,
      2656.,  2792.,  2928.,  3148.,  3288.,  3428.,  3568.,  9224.,  9408.,
      9592.,  9776.,  10172., 10360., 10548., 10736., 13042., 13324., 13606.,
      13888., 14464., 14752., 15040., 15328., 13582., 13876., 14170., 14464.,
      15052., 15352., 15652., 15952., 8408.,  8608.,  8808.,  9008.,  9388.,
      9592.,  9796.,  10000., 11892., 12192., 12492., 12792., 13338., 13644.,
      13950., 14256., 16395., 16854., 17313., 17772., 18564., 19032., 19500.,
      19968., 16989., 17466., 17943., 18420., 19230., 19716., 20202., 20688.,
      10188., 10512., 10836., 11160., 11682., 12012., 12342., 12672., 13668.,
      14016., 14364., 14712., 15306., 15660., 16014., 16368., 18771., 19302.,
      19833., 20364., 21228., 21768., 22308., 22848., 19365., 19914., 20463.,
      21012., 21894., 22452., 23010., 23568., 11580., 11952., 12324., 12696.,
      13266., 13644., 14022., 14400., 15444., 15840., 16236., 16632., 17274.,
      17676., 18078., 18480., 21147., 21750., 22353., 22956., 23892., 24504.,
      25116., 25728., 21741., 22362., 22983., 23604., 24558., 25188., 25818.,
      26448., 12972., 13392., 13812., 14232., 14850., 15276., 15702., 16128.,
      7208.,  7488.,  7768.,  8048.,  8444.,  8728.,  9012.,  9296.,  9298.,
      9724.,  10150., 10576., 11152., 11584., 12016., 12448., 9550.,  9988.,
      10426., 10864., 11452., 11896., 12340., 12784., 5240.,  5536.,  5832.,
      6128.,  6508.,  6808.,  7108.,  7408.,  17064., 17408., 17752., 18096.,
      18652., 19000., 19348., 19696., 23842., 24364., 24886., 25408., 26224.,
      26752., 27280., 27808., 24382., 24916., 25450., 25984., 26812., 27352.,
      27892., 28432., 14968., 15328., 15688., 16048., 16588., 16952., 17316.,
      17680., 20772., 21312., 21852., 22392., 23178., 23724., 24270., 24816.,
      28275., 29094., 29913., 30732., 31884., 32712., 33540., 34368., 28869.,
      29706., 30543., 31380., 32550., 33396., 34242., 35088., 17148., 17712.,
      18276., 18840., 19602., 20172., 20742., 21312., 22548., 23136., 23724.,
      24312., 25146., 25740., 26334., 26928., 30651., 31542., 32433., 33324.,
      34548., 35448., 36348., 37248., 31245., 32154., 33063., 33972., 35214.,
      36132., 37050., 37968., 18540., 19152., 19764., 20376., 21186., 21804.,
      22422., 23040., 24324., 24960., 25596., 26232., 27114., 27756., 28398.,
      29040., 33027., 33990., 34953., 35916., 37212., 38184., 39156., 40128.,
      33621., 34602., 35583., 36564., 37878., 38868., 39858., 40848., 19932.,
      20592., 21252., 21912., 22770., 23436., 24102., 24768., 11208., 11648.,
      12088., 12528., 13084., 13528., 13972., 14416., 14338., 15004., 15670.,
      16336., 17152., 17824., 18496., 19168., 14590., 15268., 15946., 16624.,
      17452., 18136., 18820., 19504., 7960.,  8416.,  8872.,  9328.,  9868.,
      10328., 10788., 11248.};
  const std::array<int, 4> in_shape = {{3, 5, 4, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x5x4x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4515.,  4614.,  4713.,  4812.,  5244.,  5352.,  5460.,  5568.,  5109.,
      5226.,  5343.,  5460.,  5910.,  6036.,  6162.,  6288.,  6891.,  7062.,
      7233.,  7404.,  7908.,  8088.,  8268.,  8448.,  7485.,  7674.,  7863.,
      8052.,  8574.,  8772.,  8970.,  9168.,  9267.,  9510.,  9753.,  9996.,
      10572., 10824., 11076., 11328., 9861.,  10122., 10383., 10644., 11238.,
      11508., 11778., 12048., 16395., 16854., 17313., 17772., 18564., 19032.,
      19500., 19968., 16989., 17466., 17943., 18420., 19230., 19716., 20202.,
      20688., 18771., 19302., 19833., 20364., 21228., 21768., 22308., 22848.,
      19365., 19914., 20463., 21012., 21894., 22452., 23010., 23568., 21147.,
      21750., 22353., 22956., 23892., 24504., 25116., 25728., 21741., 22362.,
      22983., 23604., 24558., 25188., 25818., 26448., 28275., 29094., 29913.,
      30732., 31884., 32712., 33540., 34368., 28869., 29706., 30543., 31380.,
      32550., 33396., 34242., 35088., 30651., 31542., 32433., 33324., 34548.,
      35448., 36348., 37248., 31245., 32154., 33063., 33972., 35214., 36132.,
      37050., 37968., 33027., 33990., 34953., 35916., 37212., 38184., 39156.,
      40128., 33621., 34602., 35583., 36564., 37878., 38868., 39858., 40848.};
  const std::array<int, 4> in_shape = {{3, 5, 4, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x5x4x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1308.,  1456.,  1612.,  1776.,  2146.,  2368.,  2602.,  2848.,  2698.,
      2944.,  3202.,  3472.,  1804.,  1968.,  2140.,  2320.,  2958.,  3192.,
      3438.,  3696.,  4461.,  4812.,  5181.,  5568.,  5073.,  5460.,  5865.,
      6288.,  3222.,  3480.,  3750.,  4032.,  4782.,  5112.,  5454.,  5808.,
      6909.,  7404.,  7917.,  8448.,  7521.,  8052.,  8601.,  9168.,  4662.,
      5016.,  5382.,  5760.,  6606.,  7032.,  7470.,  7920.,  9357.,  9996.,
      10653., 11328., 9969.,  10644., 11337., 12048., 6102.,  6552.,  7014.,
      7488.,  3276.,  3568.,  3868.,  4176.,  4378.,  4816.,  5266.,  5728.,
      4642.,  5104.,  5578.,  6064.,  2620.,  2928.,  3244.,  3568.,  9308.,
      9776.,  10252., 10736., 13186., 13888., 14602., 15328., 13738., 14464.,
      15202., 15952., 8524.,  9008.,  9500.,  10000., 12078., 12792., 13518.,
      14256., 16701., 17772., 18861., 19968., 17313., 18420., 19545., 20688.,
      10422., 11160., 11910., 12672., 13902., 14712., 15534., 16368., 19149.,
      20364., 21597., 22848., 19761., 21012., 22281., 23568., 11862., 12696.,
      13542., 14400., 15726., 16632., 17550., 18480., 21597., 22956., 24333.,
      25728., 22209., 23604., 25017., 26448., 13302., 14232., 15174., 16128.,
      7436.,  8048.,  8668.,  9296.,  9658.,  10576., 11506., 12448., 9922.,
      10864., 11818., 12784., 5500.,  6128.,  6764.,  7408.,  17308., 18096.,
      18892., 19696., 24226., 25408., 26602., 27808., 24778., 25984., 27202.,
      28432., 15244., 16048., 16860., 17680., 21198., 22392., 23598., 24816.,
      28941., 30732., 32541., 34368., 29553., 31380., 33225., 35088., 17622.,
      18840., 20070., 21312., 23022., 24312., 25614., 26928., 31389., 33324.,
      35277., 37248., 32001., 33972., 35961., 37968., 19062., 20376., 21702.,
      23040., 24846., 26232., 27630., 29040., 33837., 35916., 38013., 40128.,
      34449., 36564., 38697., 40848., 20502., 21912., 23334., 24768., 11596.,
      12528., 13468., 14416., 14938., 16336., 17746., 19168., 15202., 16624.,
      18058., 19504., 8380.,  9328.,  10284., 11248.};
  const std::array<int, 4> in_shape = {{3, 5, 4, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x5x4x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4461.,  4812.,  5181.,  5568.,  5073.,  5460.,  5865.,  6288.,  6909.,
      7404.,  7917.,  8448.,  7521.,  8052.,  8601.,  9168.,  9357.,  9996.,
      10653., 11328., 9969.,  10644., 11337., 12048., 16701., 17772., 18861.,
      19968., 17313., 18420., 19545., 20688., 19149., 20364., 21597., 22848.,
      19761., 21012., 22281., 23568., 21597., 22956., 24333., 25728., 22209.,
      23604., 25017., 26448., 28941., 30732., 32541., 34368., 29553., 31380.,
      33225., 35088., 31389., 33324., 35277., 37248., 32001., 33972., 35961.,
      37968., 33837., 35916., 38013., 40128., 34449., 36564., 38697., 40848.};
  const std::array<int, 4> in_shape = {{3, 5, 4, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x5x4x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2572.,  2616.,  2864.,  2912.,  3172.,  3224.,  3496.,  3552.,  4214.,
      4292.,  4652.,  4736.,  5114.,  5204.,  5600.,  5696.,  5294.,  5396.,
      5780.,  5888.,  6290.,  6404.,  6824.,  6944.,  3532.,  3608.,  3856.,
      3936.,  4196.,  4280.,  4552.,  4640.,  5802.,  5916.,  6264.,  6384.,
      6750.,  6876.,  7260.,  7392.,  8733.,  8922.,  9426.,  9624.,  10155.,
      10362., 10920., 11136., 9921.,  10146., 10686., 10920., 11487., 11730.,
      12324., 12576., 6282.,  6444.,  6792.,  6960.,  7326.,  7500.,  7884.,
      8064.,  9354.,  9564.,  10008., 10224., 10686., 10908., 11388., 11616.,
      13485., 13818., 14466., 14808., 15483., 15834., 16536., 16896., 14673.,
      15042., 15726., 16104., 16815., 17202., 17940., 18336., 9066.,  9324.,
      9768.,  10032., 10494., 10764., 11244., 11520., 12906., 13212., 13752.,
      14064., 14622., 14940., 15516., 15840., 18237., 18714., 19506., 19992.,
      20811., 21306., 22152., 22656., 19425., 19938., 20766., 21288., 22143.,
      22674., 23556., 24096., 11850., 12204., 12744., 13104., 13662., 14028.,
      14604., 14976., 6316.,  6552.,  6896.,  7136.,  7492.,  7736.,  8104.,
      8352.,  8390.,  8756.,  9260.,  9632.,  10154., 10532., 11072., 11456.,
      8894.,  9284.,  9812.,  10208., 10754., 11156., 11720., 12128., 4972.,
      5240.,  5584.,  5856.,  6212.,  6488.,  6856.,  7136.,  18252., 18616.,
      19184., 19552., 20132., 20504., 21096., 21472., 25814., 26372., 27212.,
      27776., 28634., 29204., 30080., 30656., 26894., 27476., 28340., 28928.,
      29810., 30404., 31304., 31904., 16652., 17048., 17616., 18016., 18596.,
      19000., 19592., 20000., 23562., 24156., 24984., 25584., 26430., 27036.,
      27900., 28512., 32493., 33402., 34626., 35544., 36795., 37722., 39000.,
      39936., 33681., 34626., 35886., 36840., 38127., 39090., 40404., 41376.,
      20202., 20844., 21672., 22320., 23166., 23820., 24684., 25344., 27114.,
      27804., 28728., 29424., 30366., 31068., 32028., 32736., 37245., 38298.,
      39666., 40728., 42123., 43194., 44616., 45696., 38433., 39522., 40926.,
      42024., 43455., 44562., 46020., 47136., 22986., 23724., 24648., 25392.,
      26334., 27084., 28044., 28800., 30666., 31452., 32472., 33264., 34302.,
      35100., 36156., 36960., 41997., 43194., 44706., 45912., 47451., 48666.,
      50232., 51456., 43185., 44418., 45966., 47208., 48783., 50034., 51636.,
      52896., 25770., 26604., 27624., 28464., 29502., 30348., 31404., 32256.,
      14316., 14872., 15536., 16096., 16772., 17336., 18024., 18592., 18470.,
      19316., 20300., 21152., 22154., 23012., 24032., 24896., 18974., 19844.,
      20852., 21728., 22754., 23636., 24680., 25568., 10412., 11000., 11664.,
      12256., 12932., 13528., 14216., 14816., 33932., 34616., 35504., 36192.,
      37092., 37784., 38696., 39392., 47414., 48452., 49772., 50816., 52154.,
      53204., 54560., 55616., 48494., 49556., 50900., 51968., 53330., 54404.,
      55784., 56864., 29772., 30488., 31376., 32096., 32996., 33720., 34632.,
      35360., 41322., 42396., 43704., 44784., 46110., 47196., 48540., 49632.,
      56253., 57882., 59826., 61464., 63435., 65082., 67080., 68736., 57441.,
      59106., 61086., 62760., 64767., 66450., 68484., 70176., 34122., 35244.,
      36552., 37680., 39006., 40140., 41484., 42624., 44874., 46044., 47448.,
      48624., 50046., 51228., 52668., 53856., 61005., 62778., 64866., 66648.,
      68763., 70554., 72696., 74496., 62193., 64002., 66126., 67944., 70095.,
      71922., 74100., 75936., 36906., 38124., 39528., 40752., 42174., 43404.,
      44844., 46080., 48426., 49692., 51192., 52464., 53982., 55260., 56796.,
      58080., 65757., 67674., 69906., 71832., 74091., 76026., 78312., 80256.,
      66945., 68898., 71166., 73128., 75423., 77394., 79716., 81696., 39690.,
      41004., 42504., 43824., 45342., 46668., 48204., 49536., 22316., 23192.,
      24176., 25056., 26052., 26936., 27944., 28832., 28550., 29876., 31340.,
      32672., 34154., 35492., 36992., 38336., 29054., 30404., 31892., 33248.,
      34754., 36116., 37640., 39008., 15852., 16760., 17744., 18656., 19652.,
      20568., 21576., 22496.};
  const std::array<int, 4> in_shape = {{3, 5, 4, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x5x4x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      8733.,  8922.,  9426.,  9624.,  10155., 10362., 10920., 11136., 9921.,
      10146., 10686., 10920., 11487., 11730., 12324., 12576., 13485., 13818.,
      14466., 14808., 15483., 15834., 16536., 16896., 14673., 15042., 15726.,
      16104., 16815., 17202., 17940., 18336., 18237., 18714., 19506., 19992.,
      20811., 21306., 22152., 22656., 19425., 19938., 20766., 21288., 22143.,
      22674., 23556., 24096., 32493., 33402., 34626., 35544., 36795., 37722.,
      39000., 39936., 33681., 34626., 35886., 36840., 38127., 39090., 40404.,
      41376., 37245., 38298., 39666., 40728., 42123., 43194., 44616., 45696.,
      38433., 39522., 40926., 42024., 43455., 44562., 46020., 47136., 41997.,
      43194., 44706., 45912., 47451., 48666., 50232., 51456., 43185., 44418.,
      45966., 47208., 48783., 50034., 51636., 52896., 56253., 57882., 59826.,
      61464., 63435., 65082., 67080., 68736., 57441., 59106., 61086., 62760.,
      64767., 66450., 68484., 70176., 61005., 62778., 64866., 66648., 68763.,
      70554., 72696., 74496., 62193., 64002., 66126., 67944., 70095., 71922.,
      74100., 75936., 65757., 67674., 69906., 71832., 74091., 76026., 78312.,
      80256., 66945., 68898., 71166., 73128., 75423., 77394., 79716., 81696.};
  const std::array<int, 4> in_shape = {{3, 5, 4, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x5x4x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5100.,   5144.,   5188.,   5232.,   5680.,   5728.,   5776.,   5824.,
      6292.,   6344.,   6396.,   6448.,   6936.,   6992.,   7048.,   7104.,
      8350.,   8428.,   8506.,   8584.,   9220.,   9304.,   9388.,   9472.,
      10138.,  10228.,  10318.,  10408.,  11104.,  11200.,  11296.,  11392.,
      10486.,  10588.,  10690.,  10792.,  11452.,  11560.,  11668.,  11776.,
      12466.,  12580.,  12694.,  12808.,  13528.,  13648.,  13768.,  13888.,
      6988.,   7064.,   7140.,   7216.,   7632.,   7712.,   7792.,   7872.,
      8308.,   8392.,   8476.,   8560.,   9016.,   9104.,   9192.,   9280.,
      11490.,  11604.,  11718.,  11832.,  12408.,  12528.,  12648.,  12768.,
      13374.,  13500.,  13626.,  13752.,  14388.,  14520.,  14652.,  14784.,
      17277.,  17466.,  17655.,  17844.,  18654.,  18852.,  19050.,  19248.,
      20103.,  20310.,  20517.,  20724.,  21624.,  21840.,  22056.,  22272.,
      19617.,  19842.,  20067.,  20292.,  21138.,  21372.,  21606.,  21840.,
      22731.,  22974.,  23217.,  23460.,  24396.,  24648.,  24900.,  25152.,
      12402.,  12564.,  12726.,  12888.,  13416.,  13584.,  13752.,  13920.,
      14478.,  14652.,  14826.,  15000.,  15588.,  15768.,  15948.,  16128.,
      18498.,  18708.,  18918.,  19128.,  19800.,  20016.,  20232.,  20448.,
      21150.,  21372.,  21594.,  21816.,  22548.,  22776.,  23004.,  23232.,
      26637.,  26970.,  27303.,  27636.,  28590.,  28932.,  29274.,  29616.,
      30615.,  30966.,  31317.,  31668.,  32712.,  33072.,  33432.,  33792.,
      28977.,  29346.,  29715.,  30084.,  31074.,  31452.,  31830.,  32208.,
      33243.,  33630.,  34017.,  34404.,  35484.,  35880.,  36276.,  36672.,
      17874.,  18132.,  18390.,  18648.,  19272.,  19536.,  19800.,  20064.,
      20718.,  20988.,  21258.,  21528.,  22212.,  22488.,  22764.,  23040.,
      25506.,  25812.,  26118.,  26424.,  27192.,  27504.,  27816.,  28128.,
      28926.,  29244.,  29562.,  29880.,  30708.,  31032.,  31356.,  31680.,
      35997.,  36474.,  36951.,  37428.,  38526.,  39012.,  39498.,  39984.,
      41127.,  41622.,  42117.,  42612.,  43800.,  44304.,  44808.,  45312.,
      38337.,  38850.,  39363.,  39876.,  41010.,  41532.,  42054.,  42576.,
      43755.,  44286.,  44817.,  45348.,  46572.,  47112.,  47652.,  48192.,
      23346.,  23700.,  24054.,  24408.,  25128.,  25488.,  25848.,  26208.,
      26958.,  27324.,  27690.,  28056.,  28836.,  29208.,  29580.,  29952.,
      12396.,  12632.,  12868.,  13104.,  13552.,  13792.,  14032.,  14272.,
      14740.,  14984.,  15228.,  15472.,  15960.,  16208.,  16456.,  16704.,
      16414.,  16780.,  17146.,  17512.,  18148.,  18520.,  18892.,  19264.,
      19930.,  20308.,  20686.,  21064.,  21760.,  22144.,  22528.,  22912.,
      17398.,  17788.,  18178.,  18568.,  19228.,  19624.,  20020.,  20416.,
      21106.,  21508.,  21910.,  22312.,  23032.,  23440.,  23848.,  24256.,
      9676.,   9944.,   10212.,  10480.,  10896.,  11168.,  11440.,  11712.,
      12148.,  12424.,  12700.,  12976.,  13432.,  13712.,  13992.,  14272.,
      36140.,  36504.,  36868.,  37232.,  38000.,  38368.,  38736.,  39104.,
      39892.,  40264.,  40636.,  41008.,  41816.,  42192.,  42568.,  42944.,
      51070.,  51628.,  52186.,  52744.,  53860.,  54424.,  54988.,  55552.,
      56698.,  57268.,  57838.,  58408.,  59584.,  60160.,  60736.,  61312.,
      53206.,  53788.,  54370.,  54952.,  56092.,  56680.,  57268.,  57856.,
      59026.,  59620.,  60214.,  60808.,  62008.,  62608.,  63208.,  63808.,
      32908.,  33304.,  33700.,  34096.,  34832.,  35232.,  35632.,  36032.,
      36788.,  37192.,  37596.,  38000.,  38776.,  39184.,  39592.,  40000.,
      46530.,  47124.,  47718.,  48312.,  49368.,  49968.,  50568.,  51168.,
      52254.,  52860.,  53466.,  54072.,  55188.,  55800.,  56412.,  57024.,
      64077.,  64986.,  65895.,  66804.,  68334.,  69252.,  70170.,  71088.,
      72663.,  73590.,  74517.,  75444.,  77064.,  78000.,  78936.,  79872.,
      66417.,  67362.,  68307.,  69252.,  70818.,  71772.,  72726.,  73680.,
      75291.,  76254.,  77217.,  78180.,  79836.,  80808.,  81780.,  82752.,
      39762.,  40404.,  41046.,  41688.,  42696.,  43344.,  43992.,  44640.,
      45678.,  46332.,  46986.,  47640.,  48708.,  49368.,  50028.,  50688.,
      53538.,  54228.,  54918.,  55608.,  56760.,  57456.,  58152.,  58848.,
      60030.,  60732.,  61434.,  62136.,  63348.,  64056.,  64764.,  65472.,
      73437.,  74490.,  75543.,  76596.,  78270.,  79332.,  80394.,  81456.,
      83175.,  84246.,  85317.,  86388.,  88152.,  89232.,  90312.,  91392.,
      75777.,  76866.,  77955.,  79044.,  80754.,  81852.,  82950.,  84048.,
      85803.,  86910.,  88017.,  89124.,  90924.,  92040.,  93156.,  94272.,
      45234.,  45972.,  46710.,  47448.,  48552.,  49296.,  50040.,  50784.,
      51918.,  52668.,  53418.,  54168.,  55332.,  56088.,  56844.,  57600.,
      60546.,  61332.,  62118.,  62904.,  64152.,  64944.,  65736.,  66528.,
      67806.,  68604.,  69402.,  70200.,  71508.,  72312.,  73116.,  73920.,
      82797.,  83994.,  85191.,  86388.,  88206.,  89412.,  90618.,  91824.,
      93687.,  94902.,  96117.,  97332.,  99240.,  100464., 101688., 102912.,
      85137.,  86370.,  87603.,  88836.,  90690.,  91932.,  93174.,  94416.,
      96315.,  97566.,  98817.,  100068., 102012., 103272., 104532., 105792.,
      50706.,  51540.,  52374.,  53208.,  54408.,  55248.,  56088.,  56928.,
      58158.,  59004.,  59850.,  60696.,  61956.,  62808.,  63660.,  64512.,
      28076.,  28632.,  29188.,  29744.,  30512.,  31072.,  31632.,  32192.,
      32980.,  33544.,  34108.,  34672.,  35480.,  36048.,  36616.,  37184.,
      36094.,  36940.,  37786.,  38632.,  39748.,  40600.,  41452.,  42304.,
      43450.,  44308.,  45166.,  46024.,  47200.,  48064.,  48928.,  49792.,
      37078.,  37948.,  38818.,  39688.,  40828.,  41704.,  42580.,  43456.,
      44626.,  45508.,  46390.,  47272.,  48472.,  49360.,  50248.,  51136.,
      20236.,  20824.,  21412.,  22000.,  22736.,  23328.,  23920.,  24512.,
      25268.,  25864.,  26460.,  27056.,  27832.,  28432.,  29032.,  29632.,
      67180.,  67864.,  68548.,  69232.,  70320.,  71008.,  71696.,  72384.,
      73492.,  74184.,  74876.,  75568.,  76696.,  77392.,  78088.,  78784.,
      93790.,  94828.,  95866.,  96904.,  98500.,  99544.,  100588., 101632.,
      103258., 104308., 105358., 106408., 108064., 109120., 110176., 111232.,
      95926.,  96988.,  98050.,  99112.,  100732., 101800., 102868., 103936.,
      105586., 106660., 107734., 108808., 110488., 111568., 112648., 113728.,
      58828.,  59544.,  60260.,  60976.,  62032.,  62752.,  63472.,  64192.,
      65268.,  65992.,  66716.,  67440.,  68536.,  69264.,  69992.,  70720.,
      81570.,  82644.,  83718.,  84792.,  86328.,  87408.,  88488.,  89568.,
      91134.,  92220.,  93306.,  94392.,  95988.,  97080.,  98172.,  99264.,
      110877., 112506., 114135., 115764., 118014., 119652., 121290., 122928.,
      125223., 126870., 128517., 130164., 132504., 134160., 135816., 137472.,
      113217., 114882., 116547., 118212., 120498., 122172., 123846., 125520.,
      127851., 129534., 131217., 132900., 135276., 136968., 138660., 140352.,
      67122.,  68244.,  69366.,  70488.,  71976.,  73104.,  74232.,  75360.,
      76878.,  78012.,  79146.,  80280.,  81828.,  82968.,  84108.,  85248.,
      88578.,  89748.,  90918.,  92088.,  93720.,  94896.,  96072.,  97248.,
      98910.,  100092., 101274., 102456., 104148., 105336., 106524., 107712.,
      120237., 122010., 123783., 125556., 127950., 129732., 131514., 133296.,
      135735., 137526., 139317., 141108., 143592., 145392., 147192., 148992.,
      122577., 124386., 126195., 128004., 130434., 132252., 134070., 135888.,
      138363., 140190., 142017., 143844., 146364., 148200., 150036., 151872.,
      72594.,  73812.,  75030.,  76248.,  77832.,  79056.,  80280.,  81504.,
      83118.,  84348.,  85578.,  86808.,  88452.,  89688.,  90924.,  92160.,
      95586.,  96852.,  98118.,  99384.,  101112., 102384., 103656., 104928.,
      106686., 107964., 109242., 110520., 112308., 113592., 114876., 116160.,
      129597., 131514., 133431., 135348., 137886., 139812., 141738., 143664.,
      146247., 148182., 150117., 152052., 154680., 156624., 158568., 160512.,
      131937., 133890., 135843., 137796., 140370., 142332., 144294., 146256.,
      148875., 150846., 152817., 154788., 157452., 159432., 161412., 163392.,
      78066.,  79380.,  80694.,  82008.,  83688.,  85008.,  86328.,  87648.,
      89358.,  90684.,  92010.,  93336.,  95076.,  96408.,  97740.,  99072.,
      43756.,  44632.,  45508.,  46384.,  47472.,  48352.,  49232.,  50112.,
      51220.,  52104.,  52988.,  53872.,  55000.,  55888.,  56776.,  57664.,
      55774.,  57100.,  58426.,  59752.,  61348.,  62680.,  64012.,  65344.,
      66970.,  68308.,  69646.,  70984.,  72640.,  73984.,  75328.,  76672.,
      56758.,  58108.,  59458.,  60808.,  62428.,  63784.,  65140.,  66496.,
      68146.,  69508.,  70870.,  72232.,  73912.,  75280.,  76648.,  78016.,
      30796.,  31704.,  32612.,  33520.,  34576.,  35488.,  36400.,  37312.,
      38388.,  39304.,  40220.,  41136.,  42232.,  43152.,  44072.,  44992.};
  const std::array<int, 4> in_shape = {{3, 5, 4, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x5x4x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      17277.,  17466.,  17655.,  17844.,  18654.,  18852.,  19050.,  19248.,
      20103.,  20310.,  20517.,  20724.,  21624.,  21840.,  22056.,  22272.,
      19617.,  19842.,  20067.,  20292.,  21138.,  21372.,  21606.,  21840.,
      22731.,  22974.,  23217.,  23460.,  24396.,  24648.,  24900.,  25152.,
      26637.,  26970.,  27303.,  27636.,  28590.,  28932.,  29274.,  29616.,
      30615.,  30966.,  31317.,  31668.,  32712.,  33072.,  33432.,  33792.,
      28977.,  29346.,  29715.,  30084.,  31074.,  31452.,  31830.,  32208.,
      33243.,  33630.,  34017.,  34404.,  35484.,  35880.,  36276.,  36672.,
      35997.,  36474.,  36951.,  37428.,  38526.,  39012.,  39498.,  39984.,
      41127.,  41622.,  42117.,  42612.,  43800.,  44304.,  44808.,  45312.,
      38337.,  38850.,  39363.,  39876.,  41010.,  41532.,  42054.,  42576.,
      43755.,  44286.,  44817.,  45348.,  46572.,  47112.,  47652.,  48192.,
      64077.,  64986.,  65895.,  66804.,  68334.,  69252.,  70170.,  71088.,
      72663.,  73590.,  74517.,  75444.,  77064.,  78000.,  78936.,  79872.,
      66417.,  67362.,  68307.,  69252.,  70818.,  71772.,  72726.,  73680.,
      75291.,  76254.,  77217.,  78180.,  79836.,  80808.,  81780.,  82752.,
      73437.,  74490.,  75543.,  76596.,  78270.,  79332.,  80394.,  81456.,
      83175.,  84246.,  85317.,  86388.,  88152.,  89232.,  90312.,  91392.,
      75777.,  76866.,  77955.,  79044.,  80754.,  81852.,  82950.,  84048.,
      85803.,  86910.,  88017.,  89124.,  90924.,  92040.,  93156.,  94272.,
      82797.,  83994.,  85191.,  86388.,  88206.,  89412.,  90618.,  91824.,
      93687.,  94902.,  96117.,  97332.,  99240.,  100464., 101688., 102912.,
      85137.,  86370.,  87603.,  88836.,  90690.,  91932.,  93174.,  94416.,
      96315.,  97566.,  98817.,  100068., 102012., 103272., 104532., 105792.,
      110877., 112506., 114135., 115764., 118014., 119652., 121290., 122928.,
      125223., 126870., 128517., 130164., 132504., 134160., 135816., 137472.,
      113217., 114882., 116547., 118212., 120498., 122172., 123846., 125520.,
      127851., 129534., 131217., 132900., 135276., 136968., 138660., 140352.,
      120237., 122010., 123783., 125556., 127950., 129732., 131514., 133296.,
      135735., 137526., 139317., 141108., 143592., 145392., 147192., 148992.,
      122577., 124386., 126195., 128004., 130434., 132252., 134070., 135888.,
      138363., 140190., 142017., 143844., 146364., 148200., 150036., 151872.,
      129597., 131514., 133431., 135348., 137886., 139812., 141738., 143664.,
      146247., 148182., 150117., 152052., 154680., 156624., 158568., 160512.,
      131937., 133890., 135843., 137796., 140370., 142332., 144294., 146256.,
      148875., 150846., 152817., 154788., 157452., 159432., 161412., 163392.};
  const std::array<int, 4> in_shape = {{3, 5, 4, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x5x5x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      128.,  202.,  241.,  280.,  184.,  276.,  411.,  456.,  501.,  318.,
      441.,  636.,  681.,  726.,  453.,  606.,  861.,  906.,  951.,  588.,
      320.,  436.,  457.,  478.,  280.,  828.,  1177., 1216., 1255., 784.,
      1101., 1536., 1581., 1626., 993.,  1266., 1761., 1806., 1851., 1128.,
      1431., 1986., 2031., 2076., 1263., 720.,  961.,  982.,  1003., 580.,
      1528., 2152., 2191., 2230., 1384., 1926., 2661., 2706., 2751., 1668.,
      2091., 2886., 2931., 2976., 1803., 2256., 3111., 3156., 3201., 1938.,
      1120., 1486., 1507., 1528., 880.};
  const std::array<int, 4> in_shape = {{3, 5, 5, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x5x5x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      411.,  456.,  501.,  636.,  681.,  726.,  861.,  906.,  951.,
      1536., 1581., 1626., 1761., 1806., 1851., 1986., 2031., 2076.,
      2661., 2706., 2751., 2886., 2931., 2976., 3111., 3156., 3201.};
  const std::array<int, 4> in_shape = {{3, 5, 5, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x5x5x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      240.,  256.,  377.,  404.,  449.,  482.,  521.,  560.,  340.,  368.,
      513.,  552.,  759.,  822.,  840.,  912.,  921.,  1002., 579.,  636.,
      813.,  882.,  1164., 1272., 1245., 1362., 1326., 1452., 819.,  906.,
      1113., 1212., 1569., 1722., 1650., 1812., 1731., 1902., 1059., 1176.,
      564.,  640.,  755.,  872.,  791.,  914.,  827.,  956.,  472.,  560.,
      1540., 1656., 2177., 2354., 2249., 2432., 2321., 2510., 1440., 1568.,
      2013., 2202., 2784., 3072., 2865., 3162., 2946., 3252., 1779., 1986.,
      2313., 2532., 3189., 3522., 3270., 3612., 3351., 3702., 2019., 2256.,
      2613., 2862., 3594., 3972., 3675., 4062., 3756., 4152., 2259., 2526.,
      1264., 1440., 1655., 1922., 1691., 1964., 1727., 2006., 972.,  1160.,
      2840., 3056., 3977., 4304., 4049., 4382., 4121., 4460., 2540., 2768.,
      3513., 3852., 4809., 5322., 4890., 5412., 4971., 5502., 2979., 3336.,
      3813., 4182., 5214., 5772., 5295., 5862., 5376., 5952., 3219., 3606.,
      4113., 4512., 5619., 6222., 5700., 6312., 5781., 6402., 3459., 3876.,
      1964., 2240., 2555., 2972., 2591., 3014., 2627., 3056., 1472., 1760.};
  const std::array<int, 4> in_shape = {{3, 5, 5, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x5x5x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      759.,  822.,  840.,  912.,  921.,  1002., 1164., 1272., 1245.,
      1362., 1326., 1452., 1569., 1722., 1650., 1812., 1731., 1902.,
      2784., 3072., 2865., 3162., 2946., 3252., 3189., 3522., 3270.,
      3612., 3351., 3702., 3594., 3972., 3675., 4062., 3756., 4152.,
      4809., 5322., 4890., 5412., 4971., 5502., 5214., 5772., 5295.,
      5862., 5376., 5952., 5619., 6222., 5700., 6312., 5781., 6402.};
  const std::array<int, 4> in_shape = {{3, 5, 5, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x5x5x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      464.,   480.,   496.,   512.,   727.,   754.,   781.,   808.,   865.,
      898.,   931.,   964.,   1003.,  1042.,  1081.,  1120.,  652.,   680.,
      708.,   736.,   987.,   1026.,  1065.,  1104.,  1455.,  1518.,  1581.,
      1644.,  1608.,  1680.,  1752.,  1824.,  1761.,  1842.,  1923.,  2004.,
      1101.,  1158.,  1215.,  1272.,  1557.,  1626.,  1695.,  1764.,  2220.,
      2328.,  2436.,  2544.,  2373.,  2490.,  2607.,  2724.,  2526.,  2652.,
      2778.,  2904.,  1551.,  1638.,  1725.,  1812.,  2127.,  2226.,  2325.,
      2424.,  2985.,  3138.,  3291.,  3444.,  3138.,  3300.,  3462.,  3624.,
      3291.,  3462.,  3633.,  3804.,  2001.,  2118.,  2235.,  2352.,  1052.,
      1128.,  1204.,  1280.,  1393.,  1510.,  1627.,  1744.,  1459.,  1582.,
      1705.,  1828.,  1525.,  1654.,  1783.,  1912.,  856.,   944.,   1032.,
      1120.,  2964.,  3080.,  3196.,  3312.,  4177.,  4354.,  4531.,  4708.,
      4315.,  4498.,  4681.,  4864.,  4453.,  4642.,  4831.,  5020.,  2752.,
      2880.,  3008.,  3136.,  3837.,  4026.,  4215.,  4404.,  5280.,  5568.,
      5856.,  6144.,  5433.,  5730.,  6027.,  6324.,  5586.,  5892.,  6198.,
      6504.,  3351.,  3558.,  3765.,  3972.,  4407.,  4626.,  4845.,  5064.,
      6045.,  6378.,  6711.,  7044.,  6198.,  6540.,  6882.,  7224.,  6351.,
      6702.,  7053.,  7404.,  3801.,  4038.,  4275.,  4512.,  4977.,  5226.,
      5475.,  5724.,  6810.,  7188.,  7566.,  7944.,  6963.,  7350.,  7737.,
      8124.,  7116.,  7512.,  7908.,  8304.,  4251.,  4518.,  4785.,  5052.,
      2352.,  2528.,  2704.,  2880.,  3043.,  3310.,  3577.,  3844.,  3109.,
      3382.,  3655.,  3928.,  3175.,  3454.,  3733.,  4012.,  1756.,  1944.,
      2132.,  2320.,  5464.,  5680.,  5896.,  6112.,  7627.,  7954.,  8281.,
      8608.,  7765.,  8098.,  8431.,  8764.,  7903.,  8242.,  8581.,  8920.,
      4852.,  5080.,  5308.,  5536.,  6687.,  7026.,  7365.,  7704.,  9105.,
      9618.,  10131., 10644., 9258.,  9780.,  10302., 10824., 9411.,  9942.,
      10473., 11004., 5601.,  5958.,  6315.,  6672.,  7257.,  7626.,  7995.,
      8364.,  9870.,  10428., 10986., 11544., 10023., 10590., 11157., 11724.,
      10176., 10752., 11328., 11904., 6051.,  6438.,  6825.,  7212.,  7827.,
      8226.,  8625.,  9024.,  10635., 11238., 11841., 12444., 10788., 11400.,
      12012., 12624., 10941., 11562., 12183., 12804., 6501.,  6918.,  7335.,
      7752.,  3652.,  3928.,  4204.,  4480.,  4693.,  5110.,  5527.,  5944.,
      4759.,  5182.,  5605.,  6028.,  4825.,  5254.,  5683.,  6112.,  2656.,
      2944.,  3232.,  3520.};
  const std::array<int, 4> in_shape = {{3, 5, 5, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x5x5x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1455.,  1518.,  1581.,  1644.,  1608.,  1680.,  1752.,  1824.,  1761.,
      1842.,  1923.,  2004.,  2220.,  2328.,  2436.,  2544.,  2373.,  2490.,
      2607.,  2724.,  2526.,  2652.,  2778.,  2904.,  2985.,  3138.,  3291.,
      3444.,  3138.,  3300.,  3462.,  3624.,  3291.,  3462.,  3633.,  3804.,
      5280.,  5568.,  5856.,  6144.,  5433.,  5730.,  6027.,  6324.,  5586.,
      5892.,  6198.,  6504.,  6045.,  6378.,  6711.,  7044.,  6198.,  6540.,
      6882.,  7224.,  6351.,  6702.,  7053.,  7404.,  6810.,  7188.,  7566.,
      7944.,  6963.,  7350.,  7737.,  8124.,  7116.,  7512.,  7908.,  8304.,
      9105.,  9618.,  10131., 10644., 9258.,  9780.,  10302., 10824., 9411.,
      9942.,  10473., 11004., 9870.,  10428., 10986., 11544., 10023., 10590.,
      11157., 11724., 10176., 10752., 11328., 11904., 10635., 11238., 11841.,
      12444., 10788., 11400., 12012., 12624., 10941., 11562., 12183., 12804.};
  const std::array<int, 4> in_shape = {{3, 5, 5, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x5x5x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      428.,   512.,   682.,   808.,  826.,  964.,   970.,   1120.,  636.,
      736.,   966.,   1104.,  1437., 1644., 1599.,  1824.,  1761.,  2004.,
      1110.,  1272.,  1566.,  1764., 2247., 2544.,  2409.,  2724.,  2571.,
      2904.,  1590.,  1812.,  2166., 2424., 3057.,  3444.,  3219.,  3624.,
      3381.,  3804.,  2070.,  2352., 1100., 1280.,  1474.,  1744.,  1546.,
      1828.,  1618.,  1912.,  924.,  1120., 3028.,  3312.,  4282.,  4708.,
      4426.,  4864.,  4570.,  5020., 2836., 3136.,  3966.,  4404.,  5487.,
      6144.,  5649.,  6324.,  5811., 6504., 3510.,  3972.,  4566.,  5064.,
      6297.,  7044.,  6459.,  7224., 6621., 7404.,  3990.,  4512.,  5166.,
      5724.,  7107.,  7944.,  7269., 8124., 7431.,  8304.,  4470.,  5052.,
      2500.,  2880.,  3274.,  3844., 3346., 3928.,  3418.,  4012.,  1924.,
      2320.,  5628.,  6112.,  7882., 8608., 8026.,  8764.,  8170.,  8920.,
      5036.,  5536.,  6966.,  7704., 9537., 10644., 9699.,  10824., 9861.,
      11004., 5910.,  6672.,  7566., 8364., 10347., 11544., 10509., 11724.,
      10671., 11904., 6390.,  7212., 8166., 9024.,  11157., 12444., 11319.,
      12624., 11481., 12804., 6870., 7752., 3900.,  4480.,  5074.,  5944.,
      5146.,  6028.,  5218.,  6112., 2924., 3520.};
  const std::array<int, 4> in_shape = {{3, 5, 5, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x5x5x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1437.,  1644.,  1599.,  1824.,  1761.,  2004.,  2247.,  2544.,  2409.,
      2724.,  2571.,  2904.,  3057.,  3444.,  3219.,  3624.,  3381.,  3804.,
      5487.,  6144.,  5649.,  6324.,  5811.,  6504.,  6297.,  7044.,  6459.,
      7224.,  6621.,  7404.,  7107.,  7944.,  7269.,  8124.,  7431.,  8304.,
      9537.,  10644., 9699.,  10824., 9861.,  11004., 10347., 11544., 10509.,
      11724., 10671., 11904., 11157., 12444., 11319., 12624., 11481., 12804.};
  const std::array<int, 4> in_shape = {{3, 5, 5, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x5x5x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      828.,   856.,   992.,   1024.,  1316.,  1364.,  1562.,  1616.,  1592.,
      1652.,  1862.,  1928.,  1868.,  1940.,  2162.,  2240.,  1220.,  1272.,
      1416.,  1472.,  1860.,  1932.,  2130.,  2208.,  2757.,  2874.,  3162.,
      3288.,  3063.,  3198.,  3504.,  3648.,  3369.,  3522.,  3846.,  4008.,
      2112.,  2220.,  2430.,  2544.,  3000.,  3132.,  3390.,  3528.,  4287.,
      4494.,  4872.,  5088.,  4593.,  4818.,  5214.,  5448.,  4899.,  5142.,
      5556.,  5808.,  3012.,  3180.,  3450.,  3624.,  4140.,  4332.,  4650.,
      4848.,  5817.,  6114.,  6582.,  6888.,  6123.,  6438.,  6924.,  7248.,
      6429.,  6762.,  7266.,  7608.,  3912.,  4140.,  4470.,  4704.,  2052.,
      2200.,  2408.,  2560.,  2720.,  2948.,  3254.,  3488.,  2852.,  3092.,
      3410.,  3656.,  2984.,  3236.,  3566.,  3824.,  1676.,  1848.,  2064.,
      2240.,  5828.,  6056.,  6392.,  6624.,  8216.,  8564.,  9062.,  9416.,
      8492.,  8852.,  9362.,  9728.,  8768.,  9140.,  9662.,  10040., 5420.,
      5672.,  6016.,  6272.,  7560.,  7932.,  8430.,  8808.,  10407., 10974.,
      11712., 12288., 10713., 11298., 12054., 12648., 11019., 11622., 12396.,
      13008., 6612.,  7020.,  7530.,  7944.,  8700.,  9132.,  9690.,  10128.,
      11937., 12594., 13422., 14088., 12243., 12918., 13764., 14448., 12549.,
      13242., 14106., 14808., 7512.,  7980.,  8550.,  9024.,  9840.,  10332.,
      10950., 11448., 13467., 14214., 15132., 15888., 13773., 14538., 15474.,
      16248., 14079., 14862., 15816., 16608., 8412.,  8940.,  9570.,  10104.,
      4652.,  5000.,  5408.,  5760.,  6020.,  6548.,  7154.,  7688.,  6152.,
      6692.,  7310.,  7856.,  6284.,  6836.,  7466.,  8024.,  3476.,  3848.,
      4264.,  4640.,  10828., 11256., 11792., 12224., 15116., 15764., 16562.,
      17216., 15392., 16052., 16862., 17528., 15668., 16340., 17162., 17840.,
      9620.,  10072., 10616., 11072., 13260., 13932., 14730., 15408., 18057.,
      19074., 20262., 21288., 18363., 19398., 20604., 21648., 18669., 19722.,
      20946., 22008., 11112., 11820., 12630., 13344., 14400., 15132., 15990.,
      16728., 19587., 20694., 21972., 23088., 19893., 21018., 22314., 23448.,
      20199., 21342., 22656., 23808., 12012., 12780., 13650., 14424., 15540.,
      16332., 17250., 18048., 21117., 22314., 23682., 24888., 21423., 22638.,
      24024., 25248., 21729., 22962., 24366., 25608., 12912., 13740., 14670.,
      15504., 7252.,  7800.,  8408.,  8960.,  9320.,  10148., 11054., 11888.,
      9452.,  10292., 11210., 12056., 9584.,  10436., 11366., 12224., 5276.,
      5848.,  6464.,  7040.};
  const std::array<int, 4> in_shape = {{3, 5, 5, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x5x5x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2757.,  2874.,  3162.,  3288.,  3063.,  3198.,  3504.,  3648.,  3369.,
      3522.,  3846.,  4008.,  4287.,  4494.,  4872.,  5088.,  4593.,  4818.,
      5214.,  5448.,  4899.,  5142.,  5556.,  5808.,  5817.,  6114.,  6582.,
      6888.,  6123.,  6438.,  6924.,  7248.,  6429.,  6762.,  7266.,  7608.,
      10407., 10974., 11712., 12288., 10713., 11298., 12054., 12648., 11019.,
      11622., 12396., 13008., 11937., 12594., 13422., 14088., 12243., 12918.,
      13764., 14448., 12549., 13242., 14106., 14808., 13467., 14214., 15132.,
      15888., 13773., 14538., 15474., 16248., 14079., 14862., 15816., 16608.,
      18057., 19074., 20262., 21288., 18363., 19398., 20604., 21648., 18669.,
      19722., 20946., 22008., 19587., 20694., 21972., 23088., 19893., 21018.,
      22314., 23448., 20199., 21342., 22656., 23808., 21117., 22314., 23682.,
      24888., 21423., 22638., 24024., 25248., 21729., 22962., 24366., 25608.};
  const std::array<int, 4> in_shape = {{3, 5, 5, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x5x5x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1628.,  1656.,  1684.,  1712.,  1952.,  1984.,  2016.,  2048.,  2584.,
      2632.,  2680.,  2728.,  3070.,  3124.,  3178.,  3232.,  3124.,  3184.,
      3244.,  3304.,  3658.,  3724.,  3790.,  3856.,  3664.,  3736.,  3808.,
      3880.,  4246.,  4324.,  4402.,  4480.,  2388.,  2440.,  2492.,  2544.,
      2776.,  2832.,  2888.,  2944.,  3648.,  3720.,  3792.,  3864.,  4182.,
      4260.,  4338.,  4416.,  5397.,  5514.,  5631.,  5748.,  6198.,  6324.,
      6450.,  6576.,  5991.,  6126.,  6261.,  6396.,  6864.,  7008.,  7152.,
      7296.,  6585.,  6738.,  6891.,  7044.,  7530.,  7692.,  7854.,  8016.,
      4116.,  4224.,  4332.,  4440.,  4746.,  4860.,  4974.,  5088.,  5868.,
      6000.,  6132.,  6264.,  6642.,  6780.,  6918.,  7056.,  8367.,  8574.,
      8781.,  8988.,  9528.,  9744.,  9960.,  10176., 8961.,  9186.,  9411.,
      9636.,  10194., 10428., 10662., 10896., 9555.,  9798.,  10041., 10284.,
      10860., 11112., 11364., 11616., 5856.,  6024.,  6192.,  6360.,  6726.,
      6900.,  7074.,  7248.,  8088.,  8280.,  8472.,  8664.,  9102.,  9300.,
      9498.,  9696.,  11337., 11634., 11931., 12228., 12858., 13164., 13470.,
      13776., 11931., 12246., 12561., 12876., 13524., 13848., 14172., 14496.,
      12525., 12858., 13191., 13524., 14190., 14532., 14874., 15216., 7596.,
      7824.,  8052.,  8280.,  8706.,  8940.,  9174.,  9408.,  3956.,  4104.,
      4252.,  4400.,  4664.,  4816.,  4968.,  5120.,  5212.,  5440.,  5668.,
      5896.,  6274.,  6508.,  6742.,  6976.,  5464.,  5704.,  5944.,  6184.,
      6574.,  6820.,  7066.,  7312.,  5716.,  5968.,  6220.,  6472.,  6874.,
      7132.,  7390.,  7648.,  3180.,  3352.,  3524.,  3696.,  3952.,  4128.,
      4304.,  4480.,  11428., 11656., 11884., 12112., 12552., 12784., 13016.,
      13248., 16084., 16432., 16780., 17128., 17770., 18124., 18478., 18832.,
      16624., 16984., 17344., 17704., 18358., 18724., 19090., 19456., 17164.,
      17536., 17908., 18280., 18946., 19324., 19702., 20080., 10588., 10840.,
      11092., 11344., 11776., 12032., 12288., 12544., 14748., 15120., 15492.,
      15864., 16482., 16860., 17238., 17616., 20247., 20814., 21381., 21948.,
      22848., 23424., 24000., 24576., 20841., 21426., 22011., 22596., 23514.,
      24108., 24702., 25296., 21435., 22038., 22641., 23244., 24180., 24792.,
      25404., 26016., 12816., 13224., 13632., 14040., 14646., 15060., 15474.,
      15888., 16968., 17400., 17832., 18264., 18942., 19380., 19818., 20256.,
      23217., 23874., 24531., 25188., 26178., 26844., 27510., 28176., 23811.,
      24486., 25161., 25836., 26844., 27528., 28212., 28896., 24405., 25098.,
      25791., 26484., 27510., 28212., 28914., 29616., 14556., 15024., 15492.,
      15960., 16626., 17100., 17574., 18048., 19188., 19680., 20172., 20664.,
      21402., 21900., 22398., 22896., 26187., 26934., 27681., 28428., 29508.,
      30264., 31020., 31776., 26781., 27546., 28311., 29076., 30174., 30948.,
      31722., 32496., 27375., 28158., 28941., 29724., 30840., 31632., 32424.,
      33216., 16296., 16824., 17352., 17880., 18606., 19140., 19674., 20208.,
      8956.,  9304.,  9652.,  10000., 10464., 10816., 11168., 11520., 11512.,
      12040., 12568., 13096., 13774., 14308., 14842., 15376., 11764., 12304.,
      12844., 13384., 14074., 14620., 15166., 15712., 12016., 12568., 13120.,
      13672., 14374., 14932., 15490., 16048., 6580.,  6952.,  7324.,  7696.,
      8152.,  8528.,  8904.,  9280.,  21228., 21656., 22084., 22512., 23152.,
      23584., 24016., 24448., 29584., 30232., 30880., 31528., 32470., 33124.,
      33778., 34432., 30124., 30784., 31444., 32104., 33058., 33724., 34390.,
      35056., 30664., 31336., 32008., 32680., 33646., 34324., 35002., 35680.,
      18788., 19240., 19692., 20144., 20776., 21232., 21688., 22144., 25848.,
      26520., 27192., 27864., 28782., 29460., 30138., 30816., 35097., 36114.,
      37131., 38148., 39498., 40524., 41550., 42576., 35691., 36726., 37761.,
      38796., 40164., 41208., 42252., 43296., 36285., 37338., 38391., 39444.,
      40830., 41892., 42954., 44016., 21516., 22224., 22932., 23640., 24546.,
      25260., 25974., 26688., 28068., 28800., 29532., 30264., 31242., 31980.,
      32718., 33456., 38067., 39174., 40281., 41388., 42828., 43944., 45060.,
      46176., 38661., 39786., 40911., 42036., 43494., 44628., 45762., 46896.,
      39255., 40398., 41541., 42684., 44160., 45312., 46464., 47616., 23256.,
      24024., 24792., 25560., 26526., 27300., 28074., 28848., 30288., 31080.,
      31872., 32664., 33702., 34500., 35298., 36096., 41037., 42234., 43431.,
      44628., 46158., 47364., 48570., 49776., 41631., 42846., 44061., 45276.,
      46824., 48048., 49272., 50496., 42225., 43458., 44691., 45924., 47490.,
      48732., 49974., 51216., 24996., 25824., 26652., 27480., 28506., 29340.,
      30174., 31008., 13956., 14504., 15052., 15600., 16264., 16816., 17368.,
      17920., 17812., 18640., 19468., 20296., 21274., 22108., 22942., 23776.,
      18064., 18904., 19744., 20584., 21574., 22420., 23266., 24112., 18316.,
      19168., 20020., 20872., 21874., 22732., 23590., 24448., 9980.,  10552.,
      11124., 11696., 12352., 12928., 13504., 14080.};
  const std::array<int, 4> in_shape = {{3, 5, 5, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x5x5x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5397.,  5514.,  5631.,  5748.,  6198.,  6324.,  6450.,  6576.,  5991.,
      6126.,  6261.,  6396.,  6864.,  7008.,  7152.,  7296.,  6585.,  6738.,
      6891.,  7044.,  7530.,  7692.,  7854.,  8016.,  8367.,  8574.,  8781.,
      8988.,  9528.,  9744.,  9960.,  10176., 8961.,  9186.,  9411.,  9636.,
      10194., 10428., 10662., 10896., 9555.,  9798.,  10041., 10284., 10860.,
      11112., 11364., 11616., 11337., 11634., 11931., 12228., 12858., 13164.,
      13470., 13776., 11931., 12246., 12561., 12876., 13524., 13848., 14172.,
      14496., 12525., 12858., 13191., 13524., 14190., 14532., 14874., 15216.,
      20247., 20814., 21381., 21948., 22848., 23424., 24000., 24576., 20841.,
      21426., 22011., 22596., 23514., 24108., 24702., 25296., 21435., 22038.,
      22641., 23244., 24180., 24792., 25404., 26016., 23217., 23874., 24531.,
      25188., 26178., 26844., 27510., 28176., 23811., 24486., 25161., 25836.,
      26844., 27528., 28212., 28896., 24405., 25098., 25791., 26484., 27510.,
      28212., 28914., 29616., 26187., 26934., 27681., 28428., 29508., 30264.,
      31020., 31776., 26781., 27546., 28311., 29076., 30174., 30948., 31722.,
      32496., 27375., 28158., 28941., 29724., 30840., 31632., 32424., 33216.,
      35097., 36114., 37131., 38148., 39498., 40524., 41550., 42576., 35691.,
      36726., 37761., 38796., 40164., 41208., 42252., 43296., 36285., 37338.,
      38391., 39444., 40830., 41892., 42954., 44016., 38067., 39174., 40281.,
      41388., 42828., 43944., 45060., 46176., 38661., 39786., 40911., 42036.,
      43494., 44628., 45762., 46896., 39255., 40398., 41541., 42684., 44160.,
      45312., 46464., 47616., 41037., 42234., 43431., 44628., 46158., 47364.,
      48570., 49776., 41631., 42846., 44061., 45276., 46824., 48048., 49272.,
      50496., 42225., 43458., 44691., 45924., 47490., 48732., 49974., 51216.};
  const std::array<int, 4> in_shape = {{3, 5, 5, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x5x5x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1556.,  1712.,  1876.,  2048.,  2494.,  2728.,  2974.,  3232.,  3046.,
      3304.,  3574.,  3856.,  3598.,  3880.,  4174.,  4480.,  2356.,  2544.,
      2740.,  2944.,  3606.,  3864.,  4134.,  4416.,  5361.,  5748.,  6153.,
      6576.,  5973.,  6396.,  6837.,  7296.,  6585.,  7044.,  7521.,  8016.,
      4134.,  4440.,  4758.,  5088.,  5886.,  6264.,  6654.,  7056.,  8421.,
      8988.,  9573.,  10176., 9033.,  9636.,  10257., 10896., 9645.,  10284.,
      10941., 11616., 5934.,  6360.,  6798.,  7248.,  8166.,  8664.,  9174.,
      9696.,  11481., 12228., 12993., 13776., 12093., 12876., 13677., 14496.,
      12705., 13524., 14361., 15216., 7734.,  8280.,  8838.,  9408.,  4052.,
      4400.,  4756.,  5120.,  5374.,  5896.,  6430.,  6976.,  5638.,  6184.,
      6742.,  7312.,  5902.,  6472.,  7054.,  7648.,  3316.,  3696.,  4084.,
      4480.,  11556., 12112., 12676., 13248., 16294., 17128., 17974., 18832.,
      16846., 17704., 18574., 19456., 17398., 18280., 19174., 20080., 10756.,
      11344., 11940., 12544., 15006., 15864., 16734., 17616., 20661., 21948.,
      23253., 24576., 21273., 22596., 23937., 25296., 21885., 23244., 24621.,
      26016., 13134., 14040., 14958., 15888., 17286., 18264., 19254., 20256.,
      23721., 25188., 26673., 28176., 24333., 25836., 27357., 28896., 24945.,
      26484., 28041., 29616., 14934., 15960., 16998., 18048., 19566., 20664.,
      21774., 22896., 26781., 28428., 30093., 31776., 27393., 29076., 30777.,
      32496., 28005., 29724., 31461., 33216., 16734., 17880., 19038., 20208.,
      9252.,  10000., 10756., 11520., 11974., 13096., 14230., 15376., 12238.,
      13384., 14542., 15712., 12502., 13672., 14854., 16048., 6916.,  7696.,
      8484.,  9280.,  21556., 22512., 23476., 24448., 30094., 31528., 32974.,
      34432., 30646., 32104., 33574., 35056., 31198., 32680., 34174., 35680.,
      19156., 20144., 21140., 22144., 26406., 27864., 29334., 30816., 35961.,
      38148., 40353., 42576., 36573., 38796., 41037., 43296., 37185., 39444.,
      41721., 44016., 22134., 23640., 25158., 26688., 28686., 30264., 31854.,
      33456., 39021., 41388., 43773., 46176., 39633., 42036., 44457., 46896.,
      40245., 42684., 45141., 47616., 23934., 25560., 27198., 28848., 30966.,
      32664., 34374., 36096., 42081., 44628., 47193., 49776., 42693., 45276.,
      47877., 50496., 43305., 45924., 48561., 51216., 25734., 27480., 29238.,
      31008., 14452., 15600., 16756., 17920., 18574., 20296., 22030., 23776.,
      18838., 20584., 22342., 24112., 19102., 20872., 22654., 24448., 10516.,
      11696., 12884., 14080.};
  const std::array<int, 4> in_shape = {{3, 5, 5, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x5x5x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5361.,  5748.,  6153.,  6576.,  5973.,  6396.,  6837.,  7296.,  6585.,
      7044.,  7521.,  8016.,  8421.,  8988.,  9573.,  10176., 9033.,  9636.,
      10257., 10896., 9645.,  10284., 10941., 11616., 11481., 12228., 12993.,
      13776., 12093., 12876., 13677., 14496., 12705., 13524., 14361., 15216.,
      20661., 21948., 23253., 24576., 21273., 22596., 23937., 25296., 21885.,
      23244., 24621., 26016., 23721., 25188., 26673., 28176., 24333., 25836.,
      27357., 28896., 24945., 26484., 28041., 29616., 26781., 28428., 30093.,
      31776., 27393., 29076., 30777., 32496., 28005., 29724., 31461., 33216.,
      35961., 38148., 40353., 42576., 36573., 38796., 41037., 43296., 37185.,
      39444., 41721., 44016., 39021., 41388., 43773., 46176., 39633., 42036.,
      44457., 46896., 40245., 42684., 45141., 47616., 42081., 44628., 47193.,
      49776., 42693., 45276., 47877., 50496., 43305., 45924., 48561., 51216.};
  const std::array<int, 4> in_shape = {{3, 5, 5, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x5x5x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3060.,  3112.,  3368.,   3424.,   3692.,  3752.,  4032.,  4096.,  4898.,
      4988.,  5360.,  5456.,   5846.,   5948.,  6356.,  6464.,  5978.,  6092.,
      6488.,  6608.,  7022.,   7148.,   7580.,  7712.,  7058.,  7196.,  7616.,
      7760.,  8198.,  8348.,   8804.,   8960.,  4612.,  4712.,  4984.,  5088.,
      5372.,  5480.,  5776.,   5888.,   7074.,  7212.,  7584.,  7728.,  8118.,
      8268.,  8676.,  8832.,   10497.,  10722., 11262., 11496., 12063., 12306.,
      12900., 13152., 11685.,  11946.,  12522., 12792., 13395., 13674., 14304.,
      14592., 12873., 13170.,  13782.,  14088., 14727., 15042., 15708., 16032.,
      8058.,  8268.,  8664.,   8880.,   9294.,  9516.,  9948.,  10176., 11514.,
      11772., 12264., 12528.,  13038.,  13308., 13836., 14112., 16437., 16842.,
      17562., 17976., 18723.,  19146.,  19920., 20352., 17625., 18066., 18822.,
      19272., 20055., 20514.,  21324.,  21792., 18813., 19290., 20082., 20568.,
      21387., 21882., 22728.,  23232.,  11538., 11868., 12384., 12720., 13254.,
      13596., 14148., 14496.,  15954.,  16332., 16944., 17328., 17958., 18348.,
      18996., 19392., 22377.,  22962.,  23862., 24456., 25383., 25986., 26940.,
      27552., 23565., 24186.,  25122.,  25752., 26715., 27354., 28344., 28992.,
      24753., 25410., 26382.,  27048.,  28047., 28722., 29748., 30432., 15018.,
      15468., 16104., 16560.,  17214.,  17676., 18348., 18816., 7812.,  8104.,
      8504.,  8800.,  9212.,   9512.,   9936.,  10240., 10298., 10748., 11336.,
      11792., 12398., 12860.,  13484.,  13952., 10802., 11276., 11888., 12368.,
      12998., 13484., 14132.,  14624.,  11306., 11804., 12440., 12944., 13598.,
      14108., 14780., 15296.,  6292.,   6632.,  7048.,  7392.,  7820.,  8168.,
      8608.,  8960.,  22660.,  23112.,  23768., 24224., 24892., 25352., 26032.,
      26496., 31898., 32588.,  33560.,  34256., 35246., 35948., 36956., 37664.,
      32978., 33692., 34688.,  35408.,  36422., 37148., 38180., 38912., 34058.,
      34796., 35816., 36560.,  37598.,  38348., 39404., 40160., 21012., 21512.,
      22184., 22688., 23372.,  23880.,  24576., 25088., 29274., 30012., 30984.,
      31728., 32718., 33468.,  34476.,  35232., 40197., 41322., 42762., 43896.,
      45363., 46506., 48000.,  49152.,  41385., 42546., 44022., 45192., 46695.,
      47874., 49404., 50592.,  42573.,  43770., 45282., 46488., 48027., 49242.,
      50808., 52032., 25458.,  26268.,  27264., 28080., 29094., 29916., 30948.,
      31776., 33714., 34572.,  35664.,  36528., 37638., 38508., 39636., 40512.,
      46137., 47442., 49062.,  50376.,  52023., 53346., 55020., 56352., 47325.,
      48666., 50322., 51672.,  53355.,  54714., 56424., 57792., 48513., 49890.,
      51582., 52968., 54687.,  56082.,  57828., 59232., 28938., 29868., 30984.,
      31920., 33054., 33996.,  35148.,  36096., 38154., 39132., 40344., 41328.,
      42558., 43548., 44796.,  45792.,  52077., 53562., 55362., 56856., 58683.,
      60186., 62040., 63552.,  53265.,  54786., 56622., 58152., 60015., 61554.,
      63444., 64992., 54453.,  56010.,  57882., 59448., 61347., 62922., 64848.,
      66432., 32418., 33468.,  34704.,  35760., 37014., 38076., 39348., 40416.,
      17812., 18504., 19304.,  20000.,  20812., 21512., 22336., 23040., 22898.,
      23948., 25136., 26192.,  27398.,  28460., 29684., 30752., 23402., 24476.,
      25688., 26768., 27998.,  29084.,  30332., 31424., 23906., 25004., 26240.,
      27344., 28598., 29708.,  30980.,  32096., 13092., 13832., 14648., 15392.,
      16220., 16968., 17808.,  18560.,  42260., 43112., 44168., 45024., 46092.,
      46952., 48032., 48896.,  58898.,  60188., 61760., 63056., 64646., 65948.,
      67556., 68864., 59978.,  61292.,  62888., 64208., 65822., 67148., 68780.,
      70112., 61058., 62396.,  64016.,  65360., 66998., 68348., 70004., 71360.,
      37412., 38312., 39384.,  40288.,  41372., 42280., 43376., 44288., 51474.,
      52812., 54384., 55728.,  57318.,  58668., 60276., 61632., 69897., 71922.,
      74262., 76296., 78663.,  80706.,  83100., 85152., 71085., 73146., 75522.,
      77592., 79995., 82074.,  84504.,  86592., 72273., 74370., 76782., 78888.,
      81327., 83442., 85908.,  88032.,  42858., 44268., 45864., 47280., 48894.,
      50316., 51948., 53376.,  55914.,  57372., 59064., 60528., 62238., 63708.,
      65436., 66912., 75837.,  78042.,  80562., 82776., 85323., 87546., 90120.,
      92352., 77025., 79266.,  81822.,  84072., 86655., 88914., 91524., 93792.,
      78213., 80490., 83082.,  85368.,  87987., 90282., 92928., 95232., 46338.,
      47868., 49584., 51120.,  52854.,  54396., 56148., 57696., 60354., 61932.,
      63744., 65328., 67158.,  68748.,  70596., 72192., 81777., 84162., 86862.,
      89256., 91983., 94386.,  97140.,  99552., 82965., 85386., 88122., 90552.,
      93315., 95754., 98544.,  100992., 84153., 86610., 89382., 91848., 94647.,
      97122., 99948., 102432., 49818.,  51468., 53304., 54960., 56814., 58476.,
      60348., 62016., 27812.,  28904.,  30104., 31200., 32412., 33512., 34736.,
      35840., 35498., 37148.,  38936.,  40592., 42398., 44060., 45884., 47552.,
      36002., 37676., 39488.,  41168.,  42998., 44684., 46532., 48224., 36506.,
      38204., 40040., 41744.,  43598.,  45308., 47180., 48896., 19892., 21032.,
      22248., 23392., 24620.,  25768.,  27008., 28160.};
  const std::array<int, 4> in_shape = {{3, 5, 5, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x5x5x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      10497.,  10722., 11262., 11496., 12063., 12306., 12900., 13152., 11685.,
      11946.,  12522., 12792., 13395., 13674., 14304., 14592., 12873., 13170.,
      13782.,  14088., 14727., 15042., 15708., 16032., 16437., 16842., 17562.,
      17976.,  18723., 19146., 19920., 20352., 17625., 18066., 18822., 19272.,
      20055.,  20514., 21324., 21792., 18813., 19290., 20082., 20568., 21387.,
      21882.,  22728., 23232., 22377., 22962., 23862., 24456., 25383., 25986.,
      26940.,  27552., 23565., 24186., 25122., 25752., 26715., 27354., 28344.,
      28992.,  24753., 25410., 26382., 27048., 28047., 28722., 29748., 30432.,
      40197.,  41322., 42762., 43896., 45363., 46506., 48000., 49152., 41385.,
      42546.,  44022., 45192., 46695., 47874., 49404., 50592., 42573., 43770.,
      45282.,  46488., 48027., 49242., 50808., 52032., 46137., 47442., 49062.,
      50376.,  52023., 53346., 55020., 56352., 47325., 48666., 50322., 51672.,
      53355.,  54714., 56424., 57792., 48513., 49890., 51582., 52968., 54687.,
      56082.,  57828., 59232., 52077., 53562., 55362., 56856., 58683., 60186.,
      62040.,  63552., 53265., 54786., 56622., 58152., 60015., 61554., 63444.,
      64992.,  54453., 56010., 57882., 59448., 61347., 62922., 64848., 66432.,
      69897.,  71922., 74262., 76296., 78663., 80706., 83100., 85152., 71085.,
      73146.,  75522., 77592., 79995., 82074., 84504., 86592., 72273., 74370.,
      76782.,  78888., 81327., 83442., 85908., 88032., 75837., 78042., 80562.,
      82776.,  85323., 87546., 90120., 92352., 77025., 79266., 81822., 84072.,
      86655.,  88914., 91524., 93792., 78213., 80490., 83082., 85368., 87987.,
      90282.,  92928., 95232., 81777., 84162., 86862., 89256., 91983., 94386.,
      97140.,  99552., 82965., 85386., 88122., 90552., 93315., 95754., 98544.,
      100992., 84153., 86610., 89382., 91848., 94647., 97122., 99948., 102432.};
  const std::array<int, 4> in_shape = {{3, 5, 5, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x5x5x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6068.,   6120.,   6172.,   6224.,   6680.,   6736.,   6792.,   6848.,
      7324.,   7384.,   7444.,   7504.,   8000.,   8064.,   8128.,   8192.,
      9706.,   9796.,   9886.,   9976.,   10624.,  10720.,  10816.,  10912.,
      11590.,  11692.,  11794.,  11896.,  12604.,  12712.,  12820.,  12928.,
      11842.,  11956.,  12070.,  12184.,  12856.,  12976.,  13096.,  13216.,
      13918.,  14044.,  14170.,  14296.,  15028.,  15160.,  15292.,  15424.,
      13978.,  14116.,  14254.,  14392.,  15088.,  15232.,  15376.,  15520.,
      16246.,  16396.,  16546.,  16696.,  17452.,  17608.,  17764.,  17920.,
      9124.,   9224.,   9324.,   9424.,   9864.,   9968.,   10072.,  10176.,
      10636.,  10744.,  10852.,  10960.,  11440.,  11552.,  11664.,  11776.,
      14010.,  14148.,  14286.,  14424.,  15024.,  15168.,  15312.,  15456.,
      16086.,  16236.,  16386.,  16536.,  17196.,  17352.,  17508.,  17664.,
      20769.,  20994.,  21219.,  21444.,  22290.,  22524.,  22758.,  22992.,
      23883.,  24126.,  24369.,  24612.,  25548.,  25800.,  26052.,  26304.,
      23109.,  23370.,  23631.,  23892.,  24774.,  25044.,  25314.,  25584.,
      26511.,  26790.,  27069.,  27348.,  28320.,  28608.,  28896.,  29184.,
      25449.,  25746.,  26043.,  26340.,  27258.,  27564.,  27870.,  28176.,
      29139.,  29454.,  29769.,  30084.,  31092.,  31416.,  31740.,  32064.,
      15906.,  16116.,  16326.,  16536.,  17112.,  17328.,  17544.,  17760.,
      18366.,  18588.,  18810.,  19032.,  19668.,  19896.,  20124.,  20352.,
      22770.,  23028.,  23286.,  23544.,  24264.,  24528.,  24792.,  25056.,
      25806.,  26076.,  26346.,  26616.,  27396.,  27672.,  27948.,  28224.,
      32469.,  32874.,  33279.,  33684.,  34710.,  35124.,  35538.,  35952.,
      37023.,  37446.,  37869.,  38292.,  39408.,  39840.,  40272.,  40704.,
      34809.,  35250.,  35691.,  36132.,  37194.,  37644.,  38094.,  38544.,
      39651.,  40110.,  40569.,  41028.,  42180.,  42648.,  43116.,  43584.,
      37149.,  37626.,  38103.,  38580.,  39678.,  40164.,  40650.,  41136.,
      42279.,  42774.,  43269.,  43764.,  44952.,  45456.,  45960.,  46464.,
      22746.,  23076.,  23406.,  23736.,  24432.,  24768.,  25104.,  25440.,
      26166.,  26508.,  26850.,  27192.,  27948.,  28296.,  28644.,  28992.,
      31530.,  31908.,  32286.,  32664.,  33504.,  33888.,  34272.,  34656.,
      35526.,  35916.,  36306.,  36696.,  37596.,  37992.,  38388.,  38784.,
      44169.,  44754.,  45339.,  45924.,  47130.,  47724.,  48318.,  48912.,
      50163.,  50766.,  51369.,  51972.,  53268.,  53880.,  54492.,  55104.,
      46509.,  47130.,  47751.,  48372.,  49614.,  50244.,  50874.,  51504.,
      52791.,  53430.,  54069.,  54708.,  56040.,  56688.,  57336.,  57984.,
      48849.,  49506.,  50163.,  50820.,  52098.,  52764.,  53430.,  54096.,
      55419.,  56094.,  56769.,  57444.,  58812.,  59496.,  60180.,  60864.,
      29586.,  30036.,  30486.,  30936.,  31752.,  32208.,  32664.,  33120.,
      33966.,  34428.,  34890.,  35352.,  36228.,  36696.,  37164.,  37632.,
      15332.,  15624.,  15916.,  16208.,  16712.,  17008.,  17304.,  17600.,
      18124.,  18424.,  18724.,  19024.,  19568.,  19872.,  20176.,  20480.,
      20146.,  20596.,  21046.,  21496.,  22216.,  22672.,  23128.,  23584.,
      24334.,  24796.,  25258.,  25720.,  26500.,  26968.,  27436.,  27904.,
      21130.,  21604.,  22078.,  22552.,  23296.,  23776.,  24256.,  24736.,
      25510.,  25996.,  26482.,  26968.,  27772.,  28264.,  28756.,  29248.,
      22114.,  22612.,  23110.,  23608.,  24376.,  24880.,  25384.,  25888.,
      26686.,  27196.,  27706.,  28216.,  29044.,  29560.,  30076.,  30592.,
      12244.,  12584.,  12924.,  13264.,  13752.,  14096.,  14440.,  14784.,
      15292.,  15640.,  15988.,  16336.,  16864.,  17216.,  17568.,  17920.,
      44868.,  45320.,  45772.,  46224.,  47080.,  47536.,  47992.,  48448.,
      49324.,  49784.,  50244.,  50704.,  51600.,  52064.,  52528.,  52992.,
      63106.,  63796.,  64486.,  65176.,  66424.,  67120.,  67816.,  68512.,
      69790.,  70492.,  71194.,  71896.,  73204.,  73912.,  74620.,  75328.,
      65242.,  65956.,  66670.,  67384.,  68656.,  69376.,  70096.,  70816.,
      72118.,  72844.,  73570.,  74296.,  75628.,  76360.,  77092.,  77824.,
      67378.,  68116.,  68854.,  69592.,  70888.,  71632.,  72376.,  73120.,
      74446.,  75196.,  75946.,  76696.,  78052.,  78808.,  79564.,  80320.,
      41524.,  42024.,  42524.,  43024.,  43864.,  44368.,  44872.,  45376.,
      46236.,  46744.,  47252.,  47760.,  48640.,  49152.,  49664.,  50176.,
      57810.,  58548.,  59286.,  60024.,  61224.,  61968.,  62712.,  63456.,
      64686.,  65436.,  66186.,  66936.,  68196.,  68952.,  69708.,  70464.,
      79269.,  80394.,  81519.,  82644.,  84390.,  85524.,  86658.,  87792.,
      89583.,  90726.,  91869.,  93012.,  94848.,  96000.,  97152.,  98304.,
      81609.,  82770.,  83931.,  85092.,  86874.,  88044.,  89214.,  90384.,
      92211.,  93390.,  94569.,  95748.,  97620.,  98808.,  99996.,  101184.,
      83949.,  85146.,  86343.,  87540.,  89358.,  90564.,  91770.,  92976.,
      94839.,  96054.,  97269.,  98484.,  100392., 101616., 102840., 104064.,
      50106.,  50916.,  51726.,  52536.,  53712.,  54528.,  55344.,  56160.,
      57366.,  58188.,  59010.,  59832.,  61068.,  61896.,  62724.,  63552.,
      66570.,  67428.,  68286.,  69144.,  70464.,  71328.,  72192.,  73056.,
      74406.,  75276.,  76146.,  77016.,  78396.,  79272.,  80148.,  81024.,
      90969.,  92274.,  93579.,  94884.,  96810.,  98124.,  99438.,  100752.,
      102723., 104046., 105369., 106692., 108708., 110040., 111372., 112704.,
      93309.,  94650.,  95991.,  97332.,  99294.,  100644., 101994., 103344.,
      105351., 106710., 108069., 109428., 111480., 112848., 114216., 115584.,
      95649.,  97026.,  98403.,  99780.,  101778., 103164., 104550., 105936.,
      107979., 109374., 110769., 112164., 114252., 115656., 117060., 118464.,
      56946.,  57876.,  58806.,  59736.,  61032.,  61968.,  62904.,  63840.,
      65166.,  66108.,  67050.,  67992.,  69348.,  70296.,  71244.,  72192.,
      75330.,  76308.,  77286.,  78264.,  79704.,  80688.,  81672.,  82656.,
      84126.,  85116.,  86106.,  87096.,  88596.,  89592.,  90588.,  91584.,
      102669., 104154., 105639., 107124., 109230., 110724., 112218., 113712.,
      115863., 117366., 118869., 120372., 122568., 124080., 125592., 127104.,
      105009., 106530., 108051., 109572., 111714., 113244., 114774., 116304.,
      118491., 120030., 121569., 123108., 125340., 126888., 128436., 129984.,
      107349., 108906., 110463., 112020., 114198., 115764., 117330., 118896.,
      121119., 122694., 124269., 125844., 128112., 129696., 131280., 132864.,
      63786.,  64836.,  65886.,  66936.,  68352.,  69408.,  70464.,  71520.,
      72966.,  74028.,  75090.,  76152.,  77628.,  78696.,  79764.,  80832.,
      34932.,  35624.,  36316.,  37008.,  37912.,  38608.,  39304.,  40000.,
      40924.,  41624.,  42324.,  43024.,  43968.,  44672.,  45376.,  46080.,
      44746.,  45796.,  46846.,  47896.,  49216.,  50272.,  51328.,  52384.,
      53734.,  54796.,  55858.,  56920.,  58300.,  59368.,  60436.,  61504.,
      45730.,  46804.,  47878.,  48952.,  50296.,  51376.,  52456.,  53536.,
      54910.,  55996.,  57082.,  58168.,  59572.,  60664.,  61756.,  62848.,
      46714.,  47812.,  48910.,  50008.,  51376.,  52480.,  53584.,  54688.,
      56086.,  57196.,  58306.,  59416.,  60844.,  61960.,  63076.,  64192.,
      25444.,  26184.,  26924.,  27664.,  28552.,  29296.,  30040.,  30784.,
      31692.,  32440.,  33188.,  33936.,  34864.,  35616.,  36368.,  37120.,
      83668.,  84520.,  85372.,  86224.,  87480.,  88336.,  89192.,  90048.,
      91324.,  92184.,  93044.,  93904.,  95200.,  96064.,  96928.,  97792.,
      116506., 117796., 119086., 120376., 122224., 123520., 124816., 126112.,
      127990., 129292., 130594., 131896., 133804., 135112., 136420., 137728.,
      118642., 119956., 121270., 122584., 124456., 125776., 127096., 128416.,
      130318., 131644., 132970., 134296., 136228., 137560., 138892., 140224.,
      120778., 122116., 123454., 124792., 126688., 128032., 129376., 130720.,
      132646., 133996., 135346., 136696., 138652., 140008., 141364., 142720.,
      73924.,  74824.,  75724.,  76624.,  77864.,  78768.,  79672.,  80576.,
      81836.,  82744.,  83652.,  84560.,  85840.,  86752.,  87664.,  88576.,
      101610., 102948., 104286., 105624., 107424., 108768., 110112., 111456.,
      113286., 114636., 115986., 117336., 119196., 120552., 121908., 123264.,
      137769., 139794., 141819., 143844., 146490., 148524., 150558., 152592.,
      155283., 157326., 159369., 161412., 164148., 166200., 168252., 170304.,
      140109., 142170., 144231., 146292., 148974., 151044., 153114., 155184.,
      157911., 159990., 162069., 164148., 166920., 169008., 171096., 173184.,
      142449., 144546., 146643., 148740., 151458., 153564., 155670., 157776.,
      160539., 162654., 164769., 166884., 169692., 171816., 173940., 176064.,
      84306.,  85716.,  87126.,  88536.,  90312.,  91728.,  93144.,  94560.,
      96366.,  97788.,  99210.,  100632., 102468., 103896., 105324., 106752.,
      110370., 111828., 113286., 114744., 116664., 118128., 119592., 121056.,
      123006., 124476., 125946., 127416., 129396., 130872., 132348., 133824.,
      149469., 151674., 153879., 156084., 158910., 161124., 163338., 165552.,
      168423., 170646., 172869., 175092., 178008., 180240., 182472., 184704.,
      151809., 154050., 156291., 158532., 161394., 163644., 165894., 168144.,
      171051., 173310., 175569., 177828., 180780., 183048., 185316., 187584.,
      154149., 156426., 158703., 160980., 163878., 166164., 168450., 170736.,
      173679., 175974., 178269., 180564., 183552., 185856., 188160., 190464.,
      91146.,  92676.,  94206.,  95736.,  97632.,  99168.,  100704., 102240.,
      104166., 105708., 107250., 108792., 110748., 112296., 113844., 115392.,
      119130., 120708., 122286., 123864., 125904., 127488., 129072., 130656.,
      132726., 134316., 135906., 137496., 139596., 141192., 142788., 144384.,
      161169., 163554., 165939., 168324., 171330., 173724., 176118., 178512.,
      181563., 183966., 186369., 188772., 191868., 194280., 196692., 199104.,
      163509., 165930., 168351., 170772., 173814., 176244., 178674., 181104.,
      184191., 186630., 189069., 191508., 194640., 197088., 199536., 201984.,
      165849., 168306., 170763., 173220., 176298., 178764., 181230., 183696.,
      186819., 189294., 191769., 194244., 197412., 199896., 202380., 204864.,
      97986.,  99636.,  101286., 102936., 104952., 106608., 108264., 109920.,
      111966., 113628., 115290., 116952., 119028., 120696., 122364., 124032.,
      54532.,  55624.,  56716.,  57808.,  59112.,  60208.,  61304.,  62400.,
      63724.,  64824.,  65924.,  67024.,  68368.,  69472.,  70576.,  71680.,
      69346.,  70996.,  72646.,  74296.,  76216.,  77872.,  79528.,  81184.,
      83134.,  84796.,  86458.,  88120.,  90100.,  91768.,  93436.,  95104.,
      70330.,  72004.,  73678.,  75352.,  77296.,  78976.,  80656.,  82336.,
      84310.,  85996.,  87682.,  89368.,  91372.,  93064.,  94756.,  96448.,
      71314.,  73012.,  74710.,  76408.,  78376.,  80080.,  81784.,  83488.,
      85486.,  87196.,  88906.,  90616.,  92644.,  94360.,  96076.,  97792.,
      38644.,  39784.,  40924.,  42064.,  43352.,  44496.,  45640.,  46784.,
      48092.,  49240.,  50388.,  51536.,  52864.,  54016.,  55168.,  56320.};
  const std::array<int, 4> in_shape = {{3, 5, 5, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x5x5x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      20769.,  20994.,  21219.,  21444.,  22290.,  22524.,  22758.,  22992.,
      23883.,  24126.,  24369.,  24612.,  25548.,  25800.,  26052.,  26304.,
      23109.,  23370.,  23631.,  23892.,  24774.,  25044.,  25314.,  25584.,
      26511.,  26790.,  27069.,  27348.,  28320.,  28608.,  28896.,  29184.,
      25449.,  25746.,  26043.,  26340.,  27258.,  27564.,  27870.,  28176.,
      29139.,  29454.,  29769.,  30084.,  31092.,  31416.,  31740.,  32064.,
      32469.,  32874.,  33279.,  33684.,  34710.,  35124.,  35538.,  35952.,
      37023.,  37446.,  37869.,  38292.,  39408.,  39840.,  40272.,  40704.,
      34809.,  35250.,  35691.,  36132.,  37194.,  37644.,  38094.,  38544.,
      39651.,  40110.,  40569.,  41028.,  42180.,  42648.,  43116.,  43584.,
      37149.,  37626.,  38103.,  38580.,  39678.,  40164.,  40650.,  41136.,
      42279.,  42774.,  43269.,  43764.,  44952.,  45456.,  45960.,  46464.,
      44169.,  44754.,  45339.,  45924.,  47130.,  47724.,  48318.,  48912.,
      50163.,  50766.,  51369.,  51972.,  53268.,  53880.,  54492.,  55104.,
      46509.,  47130.,  47751.,  48372.,  49614.,  50244.,  50874.,  51504.,
      52791.,  53430.,  54069.,  54708.,  56040.,  56688.,  57336.,  57984.,
      48849.,  49506.,  50163.,  50820.,  52098.,  52764.,  53430.,  54096.,
      55419.,  56094.,  56769.,  57444.,  58812.,  59496.,  60180.,  60864.,
      79269.,  80394.,  81519.,  82644.,  84390.,  85524.,  86658.,  87792.,
      89583.,  90726.,  91869.,  93012.,  94848.,  96000.,  97152.,  98304.,
      81609.,  82770.,  83931.,  85092.,  86874.,  88044.,  89214.,  90384.,
      92211.,  93390.,  94569.,  95748.,  97620.,  98808.,  99996.,  101184.,
      83949.,  85146.,  86343.,  87540.,  89358.,  90564.,  91770.,  92976.,
      94839.,  96054.,  97269.,  98484.,  100392., 101616., 102840., 104064.,
      90969.,  92274.,  93579.,  94884.,  96810.,  98124.,  99438.,  100752.,
      102723., 104046., 105369., 106692., 108708., 110040., 111372., 112704.,
      93309.,  94650.,  95991.,  97332.,  99294.,  100644., 101994., 103344.,
      105351., 106710., 108069., 109428., 111480., 112848., 114216., 115584.,
      95649.,  97026.,  98403.,  99780.,  101778., 103164., 104550., 105936.,
      107979., 109374., 110769., 112164., 114252., 115656., 117060., 118464.,
      102669., 104154., 105639., 107124., 109230., 110724., 112218., 113712.,
      115863., 117366., 118869., 120372., 122568., 124080., 125592., 127104.,
      105009., 106530., 108051., 109572., 111714., 113244., 114774., 116304.,
      118491., 120030., 121569., 123108., 125340., 126888., 128436., 129984.,
      107349., 108906., 110463., 112020., 114198., 115764., 117330., 118896.,
      121119., 122694., 124269., 125844., 128112., 129696., 131280., 132864.,
      137769., 139794., 141819., 143844., 146490., 148524., 150558., 152592.,
      155283., 157326., 159369., 161412., 164148., 166200., 168252., 170304.,
      140109., 142170., 144231., 146292., 148974., 151044., 153114., 155184.,
      157911., 159990., 162069., 164148., 166920., 169008., 171096., 173184.,
      142449., 144546., 146643., 148740., 151458., 153564., 155670., 157776.,
      160539., 162654., 164769., 166884., 169692., 171816., 173940., 176064.,
      149469., 151674., 153879., 156084., 158910., 161124., 163338., 165552.,
      168423., 170646., 172869., 175092., 178008., 180240., 182472., 184704.,
      151809., 154050., 156291., 158532., 161394., 163644., 165894., 168144.,
      171051., 173310., 175569., 177828., 180780., 183048., 185316., 187584.,
      154149., 156426., 158703., 160980., 163878., 166164., 168450., 170736.,
      173679., 175974., 178269., 180564., 183552., 185856., 188160., 190464.,
      161169., 163554., 165939., 168324., 171330., 173724., 176118., 178512.,
      181563., 183966., 186369., 188772., 191868., 194280., 196692., 199104.,
      163509., 165930., 168351., 170772., 173814., 176244., 178674., 181104.,
      184191., 186630., 189069., 191508., 194640., 197088., 199536., 201984.,
      165849., 168306., 170763., 173220., 176298., 178764., 181230., 183696.,
      186819., 189294., 191769., 194244., 197412., 199896., 202380., 204864.};
  const std::array<int, 4> in_shape = {{3, 5, 5, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x5x6x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      145.,  226.,  265.,  304.,  343.,  223.,  321.,  474.,  519.,  564.,
      609.,  384.,  519.,  744.,  789.,  834.,  879.,  546.,  717.,  1014.,
      1059., 1104., 1149., 708.,  379.,  514.,  535.,  556.,  577.,  337.,
      985.,  1396., 1435., 1474., 1513., 943.,  1311., 1824., 1869., 1914.,
      1959., 1194., 1509., 2094., 2139., 2184., 2229., 1356., 1707., 2364.,
      2409., 2454., 2499., 1518., 859.,  1144., 1165., 1186., 1207., 697.,
      1825., 2566., 2605., 2644., 2683., 1663., 2301., 3174., 3219., 3264.,
      3309., 2004., 2499., 3444., 3489., 3534., 3579., 2166., 2697., 3714.,
      3759., 3804., 3849., 2328., 1339., 1774., 1795., 1816., 1837., 1057.};
  const std::array<int, 4> in_shape = {{3, 5, 6, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x5x6x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      474.,  519.,  564.,  609.,  744.,  789.,  834.,  879.,  1014.,
      1059., 1104., 1149., 1824., 1869., 1914., 1959., 2094., 2139.,
      2184., 2229., 2364., 2409., 2454., 2499., 3174., 3219., 3264.,
      3309., 3444., 3489., 3534., 3579., 3714., 3759., 3804., 3849.};
  const std::array<int, 4> in_shape = {{3, 5, 6, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x5x6x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      272.,  290.,  422.,  452.,  494.,  530.,  566.,  608.,  638.,  686.,
      412.,  446.,  597.,  642.,  876.,  948.,  957.,  1038., 1038., 1128.,
      1119., 1218., 699.,  768.,  957.,  1038., 1362., 1488., 1443., 1578.,
      1524., 1668., 1605., 1758., 987.,  1092., 1317., 1434., 1848., 2028.,
      1929., 2118., 2010., 2208., 2091., 2298., 1275., 1416., 668.,  758.,
      890.,  1028., 926.,  1070., 962.,  1112., 998.,  1154., 568.,  674.,
      1832., 1970., 2582., 2792., 2654., 2870., 2726., 2948., 2798., 3026.,
      1732., 1886., 2397., 2622., 3306., 3648., 3387., 3738., 3468., 3828.,
      3549., 3918., 2139., 2388., 2757., 3018., 3792., 4188., 3873., 4278.,
      3954., 4368., 4035., 4458., 2427., 2712., 3117., 3414., 4278., 4728.,
      4359., 4818., 4440., 4908., 4521., 4998., 2715., 3036., 1508., 1718.,
      1970., 2288., 2006., 2330., 2042., 2372., 2078., 2414., 1168., 1394.,
      3392., 3650., 4742., 5132., 4814., 5210., 4886., 5288., 4958., 5366.,
      3052., 3326., 4197., 4602., 5736., 6348., 5817., 6438., 5898., 6528.,
      5979., 6618., 3579., 4008., 4557., 4998., 6222., 6888., 6303., 6978.,
      6384., 7068., 6465., 7158., 3867., 4332., 4917., 5394., 6708., 7428.,
      6789., 7518., 6870., 7608., 6951., 7698., 4155., 4656., 2348., 2678.,
      3050., 3548., 3086., 3590., 3122., 3632., 3158., 3674., 1768., 2114.};
  const std::array<int, 4> in_shape = {{3, 5, 6, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x5x6x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      876.,  948.,  957.,  1038., 1038., 1128., 1119., 1218., 1362.,
      1488., 1443., 1578., 1524., 1668., 1605., 1758., 1848., 2028.,
      1929., 2118., 2010., 2208., 2091., 2298., 3306., 3648., 3387.,
      3738., 3468., 3828., 3549., 3918., 3792., 4188., 3873., 4278.,
      3954., 4368., 4035., 4458., 4278., 4728., 4359., 4818., 4440.,
      4908., 4521., 4998., 5736., 6348., 5817., 6438., 5898., 6528.,
      5979., 6618., 6222., 6888., 6303., 6978., 6384., 7068., 6465.,
      7158., 6708., 7428., 6789., 7518., 6870., 7608., 6951., 7698.};
  const std::array<int, 4> in_shape = {{3, 5, 6, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x5x6x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      526.,   544.,   562.,   580.,   814.,   844.,   874.,   904.,   952.,
      988.,   1024.,  1060.,  1090.,  1132.,  1174.,  1216.,  1228.,  1276.,
      1324.,  1372.,  790.,   824.,   858.,   892.,   1149.,  1194.,  1239.,
      1284.,  1680.,  1752.,  1824.,  1896.,  1833.,  1914.,  1995.,  2076.,
      1986.,  2076.,  2166.,  2256.,  2139.,  2238.,  2337.,  2436.,  1329.,
      1398.,  1467.,  1536.,  1833.,  1914.,  1995.,  2076.,  2598.,  2724.,
      2850.,  2976.,  2751.,  2886.,  3021.,  3156.,  2904.,  3048.,  3192.,
      3336.,  3057.,  3210.,  3363.,  3516.,  1869.,  1974.,  2079.,  2184.,
      2517.,  2634.,  2751.,  2868.,  3516.,  3696.,  3876.,  4056.,  3669.,
      3858.,  4047.,  4236.,  3822.,  4020.,  4218.,  4416.,  3975.,  4182.,
      4389.,  4596.,  2409.,  2550.,  2691.,  2832.,  1246.,  1336.,  1426.,
      1516.,  1642.,  1780.,  1918.,  2056.,  1708.,  1852.,  1996.,  2140.,
      1774.,  1924.,  2074.,  2224.,  1840.,  1996.,  2152.,  2308.,  1030.,
      1136.,  1242.,  1348.,  3526.,  3664.,  3802.,  3940.,  4954.,  5164.,
      5374.,  5584.,  5092.,  5308.,  5524.,  5740.,  5230.,  5452.,  5674.,
      5896.,  5368.,  5596.,  5824.,  6052.,  3310.,  3464.,  3618.,  3772.,
      4569.,  4794.,  5019.,  5244.,  6270.,  6612.,  6954.,  7296.,  6423.,
      6774.,  7125.,  7476.,  6576.,  6936.,  7296.,  7656.,  6729.,  7098.,
      7467.,  7836.,  4029.,  4278.,  4527.,  4776.,  5253.,  5514.,  5775.,
      6036.,  7188.,  7584.,  7980.,  8376.,  7341.,  7746.,  8151.,  8556.,
      7494.,  7908.,  8322.,  8736.,  7647.,  8070.,  8493.,  8916.,  4569.,
      4854.,  5139.,  5424.,  5937.,  6234.,  6531.,  6828.,  8106.,  8556.,
      9006.,  9456.,  8259.,  8718.,  9177.,  9636.,  8412.,  8880.,  9348.,
      9816.,  8565.,  9042.,  9519.,  9996.,  5109.,  5430.,  5751.,  6072.,
      2806.,  3016.,  3226.,  3436.,  3622.,  3940.,  4258.,  4576.,  3688.,
      4012.,  4336.,  4660.,  3754.,  4084.,  4414.,  4744.,  3820.,  4156.,
      4492.,  4828.,  2110.,  2336.,  2562.,  2788.,  6526.,  6784.,  7042.,
      7300.,  9094.,  9484.,  9874.,  10264., 9232.,  9628.,  10024., 10420.,
      9370.,  9772.,  10174., 10576., 9508.,  9916.,  10324., 10732., 5830.,
      6104.,  6378.,  6652.,  7989.,  8394.,  8799.,  9204.,  10860., 11472.,
      12084., 12696., 11013., 11634., 12255., 12876., 11166., 11796., 12426.,
      13056., 11319., 11958., 12597., 13236., 6729.,  7158.,  7587.,  8016.,
      8673.,  9114.,  9555.,  9996.,  11778., 12444., 13110., 13776., 11931.,
      12606., 13281., 13956., 12084., 12768., 13452., 14136., 12237., 12930.,
      13623., 14316., 7269.,  7734.,  8199.,  8664.,  9357.,  9834.,  10311.,
      10788., 12696., 13416., 14136., 14856., 12849., 13578., 14307., 15036.,
      13002., 13740., 14478., 15216., 13155., 13902., 14649., 15396., 7809.,
      8310.,  8811.,  9312.,  4366.,  4696.,  5026.,  5356.,  5602.,  6100.,
      6598.,  7096.,  5668.,  6172.,  6676.,  7180.,  5734.,  6244.,  6754.,
      7264.,  5800.,  6316.,  6832.,  7348.,  3190.,  3536.,  3882.,  4228.};
  const std::array<int, 4> in_shape = {{3, 5, 6, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x5x6x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1680.,  1752.,  1824.,  1896.,  1833.,  1914.,  1995.,  2076.,  1986.,
      2076.,  2166.,  2256.,  2139.,  2238.,  2337.,  2436.,  2598.,  2724.,
      2850.,  2976.,  2751.,  2886.,  3021.,  3156.,  2904.,  3048.,  3192.,
      3336.,  3057.,  3210.,  3363.,  3516.,  3516.,  3696.,  3876.,  4056.,
      3669.,  3858.,  4047.,  4236.,  3822.,  4020.,  4218.,  4416.,  3975.,
      4182.,  4389.,  4596.,  6270.,  6612.,  6954.,  7296.,  6423.,  6774.,
      7125.,  7476.,  6576.,  6936.,  7296.,  7656.,  6729.,  7098.,  7467.,
      7836.,  7188.,  7584.,  7980.,  8376.,  7341.,  7746.,  8151.,  8556.,
      7494.,  7908.,  8322.,  8736.,  7647.,  8070.,  8493.,  8916.,  8106.,
      8556.,  9006.,  9456.,  8259.,  8718.,  9177.,  9636.,  8412.,  8880.,
      9348.,  9816.,  8565.,  9042.,  9519.,  9996.,  10860., 11472., 12084.,
      12696., 11013., 11634., 12255., 12876., 11166., 11796., 12426., 13056.,
      11319., 11958., 12597., 13236., 11778., 12444., 13110., 13776., 11931.,
      12606., 13281., 13956., 12084., 12768., 13452., 14136., 12237., 12930.,
      13623., 14316., 12696., 13416., 14136., 14856., 12849., 13578., 14307.,
      15036., 13002., 13740., 14478., 15216., 13155., 13902., 14649., 15396.};
  const std::array<int, 4> in_shape = {{3, 5, 6, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x5x6x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      492.,   580.,   772.,   904.,   916.,   1060.,  1060.,  1216.,  1204.,
      1372.,  780.,   892.,   1134.,  1284.,  1671.,  1896.,  1833.,  2076.,
      1995.,  2256.,  2157.,  2436.,  1350.,  1536.,  1854.,  2076.,  2643.,
      2976.,  2805.,  3156.,  2967.,  3336.,  3129.,  3516.,  1926.,  2184.,
      2574.,  2868.,  3615.,  4056.,  3777.,  4236.,  3939.,  4416.,  4101.,
      4596.,  2502.,  2832.,  1308.,  1516.,  1744.,  2056.,  1816.,  2140.,
      1888.,  2224.,  1960.,  2308.,  1116.,  1348.,  3612.,  3940.,  5092.,
      5584.,  5236.,  5740.,  5380.,  5896.,  5524.,  6052.,  3420.,  3772.,
      4734.,  5244.,  6531.,  7296.,  6693.,  7476.,  6855.,  7656.,  7017.,
      7836.,  4230.,  4776.,  5454.,  6036.,  7503.,  8376.,  7665.,  8556.,
      7827.,  8736.,  7989.,  8916.,  4806.,  5424.,  6174.,  6828.,  8475.,
      9456.,  8637.,  9636.,  8799.,  9816.,  8961.,  9996.,  5382.,  6072.,
      2988.,  3436.,  3904.,  4576.,  3976.,  4660.,  4048.,  4744.,  4120.,
      4828.,  2316.,  2788.,  6732.,  7300.,  9412.,  10264., 9556.,  10420.,
      9700.,  10576., 9844.,  10732., 6060.,  6652.,  8334.,  9204.,  11391.,
      12696., 11553., 12876., 11715., 13056., 11877., 13236., 7110.,  8016.,
      9054.,  9996.,  12363., 13776., 12525., 13956., 12687., 14136., 12849.,
      14316., 7686.,  8664.,  9774.,  10788., 13335., 14856., 13497., 15036.,
      13659., 15216., 13821., 15396., 8262.,  9312.,  4668.,  5356.,  6064.,
      7096.,  6136.,  7180.,  6208.,  7264.,  6280.,  7348.,  3516.,  4228.};
  const std::array<int, 4> in_shape = {{3, 5, 6, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x5x6x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1671.,  1896.,  1833.,  2076.,  1995.,  2256.,  2157.,  2436.,  2643.,
      2976.,  2805.,  3156.,  2967.,  3336.,  3129.,  3516.,  3615.,  4056.,
      3777.,  4236.,  3939.,  4416.,  4101.,  4596.,  6531.,  7296.,  6693.,
      7476.,  6855.,  7656.,  7017.,  7836.,  7503.,  8376.,  7665.,  8556.,
      7827.,  8736.,  7989.,  8916.,  8475.,  9456.,  8637.,  9636.,  8799.,
      9816.,  8961.,  9996.,  11391., 12696., 11553., 12876., 11715., 13056.,
      11877., 13236., 12363., 13776., 12525., 13956., 12687., 14136., 12849.,
      14316., 13335., 14856., 13497., 15036., 13659., 15216., 13821., 15396.};
  const std::array<int, 4> in_shape = {{3, 5, 6, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x5x6x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      952.,   984.,   1124.,  1160.,  1490.,  1544.,  1748.,  1808.,  1766.,
      1832.,  2048.,  2120.,  2042.,  2120.,  2348.,  2432.,  2318.,  2408.,
      2648.,  2744.,  1496.,  1560.,  1716.,  1784.,  2184.,  2268.,  2478.,
      2568.,  3207.,  3342.,  3648.,  3792.,  3513.,  3666.,  3990.,  4152.,
      3819.,  3990.,  4332.,  4512.,  4125.,  4314.,  4674.,  4872.,  2568.,
      2700.,  2934.,  3072.,  3552.,  3708.,  3990.,  4152.,  5043.,  5286.,
      5700.,  5952.,  5349.,  5610.,  6042.,  6312.,  5655.,  5934.,  6384.,
      6672.,  5961.,  6258.,  6726.,  7032.,  3648.,  3852.,  4158.,  4368.,
      4920.,  5148.,  5502.,  5736.,  6879.,  7230.,  7752.,  8112.,  7185.,
      7554.,  8094.,  8472.,  7491.,  7878.,  8436.,  8832.,  7797.,  8202.,
      8778.,  9192.,  4728.,  5004.,  5382.,  5664.,  2440.,  2616.,  2852.,
      3032.,  3218.,  3488.,  3836.,  4112.,  3350.,  3632.,  3992.,  4280.,
      3482.,  3776.,  4148.,  4448.,  3614.,  3920.,  4304.,  4616.,  2024.,
      2232.,  2484.,  2696.,  6952.,  7224.,  7604.,  7880.,  9770.,  10184.,
      10748., 11168., 10046., 10472., 11048., 11480., 10322., 10760., 11348.,
      11792., 10598., 11048., 11648., 12104., 6536.,  6840.,  7236.,  7544.,
      9024.,  9468.,  10038., 10488., 12387., 13062., 13908., 14592., 12693.,
      13386., 14250., 14952., 12999., 13710., 14592., 15312., 13305., 14034.,
      14934., 15672., 7968.,  8460.,  9054.,  9552.,  10392., 10908., 11550.,
      12072., 14223., 15006., 15960., 16752., 14529., 15330., 16302., 17112.,
      14835., 15654., 16644., 17472., 15141., 15978., 16986., 17832., 9048.,
      9612.,  10278., 10848., 11760., 12348., 13062., 13656., 16059., 16950.,
      18012., 18912., 16365., 17274., 18354., 19272., 16671., 17598., 18696.,
      19632., 16977., 17922., 19038., 19992., 10128., 10764., 11502., 12144.,
      5560.,  5976.,  6452.,  6872.,  7178.,  7808.,  8516.,  9152.,  7310.,
      7952.,  8672.,  9320.,  7442.,  8096.,  8828.,  9488.,  7574.,  8240.,
      8984.,  9656.,  4184.,  4632.,  5124.,  5576.,  12952., 13464., 14084.,
      14600., 18050., 18824., 19748., 20528., 18326., 19112., 20048., 20840.,
      18602., 19400., 20348., 21152., 18878., 19688., 20648., 21464., 11576.,
      12120., 12756., 13304., 15864., 16668., 17598., 18408., 21567., 22782.,
      24168., 25392., 21873., 23106., 24510., 25752., 22179., 23430., 24852.,
      26112., 22485., 23754., 25194., 26472., 13368., 14220., 15174., 16032.,
      17232., 18108., 19110., 19992., 23403., 24726., 26220., 27552., 23709.,
      25050., 26562., 27912., 24015., 25374., 26904., 28272., 24321., 25698.,
      27246., 28632., 14448., 15372., 16398., 17328., 18600., 19548., 20622.,
      21576., 25239., 26670., 28272., 29712., 25545., 26994., 28614., 30072.,
      25851., 27318., 28956., 30432., 26157., 27642., 29298., 30792., 15528.,
      16524., 17622., 18624., 8680.,  9336.,  10052., 10712., 11138., 12128.,
      13196., 14192., 11270., 12272., 13352., 14360., 11402., 12416., 13508.,
      14528., 11534., 12560., 13664., 14696., 6344.,  7032.,  7764.,  8456.};
  const std::array<int, 4> in_shape = {{3, 5, 6, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x5x6x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3207.,  3342.,  3648.,  3792.,  3513.,  3666.,  3990.,  4152.,  3819.,
      3990.,  4332.,  4512.,  4125.,  4314.,  4674.,  4872.,  5043.,  5286.,
      5700.,  5952.,  5349.,  5610.,  6042.,  6312.,  5655.,  5934.,  6384.,
      6672.,  5961.,  6258.,  6726.,  7032.,  6879.,  7230.,  7752.,  8112.,
      7185.,  7554.,  8094.,  8472.,  7491.,  7878.,  8436.,  8832.,  7797.,
      8202.,  8778.,  9192.,  12387., 13062., 13908., 14592., 12693., 13386.,
      14250., 14952., 12999., 13710., 14592., 15312., 13305., 14034., 14934.,
      15672., 14223., 15006., 15960., 16752., 14529., 15330., 16302., 17112.,
      14835., 15654., 16644., 17472., 15141., 15978., 16986., 17832., 16059.,
      16950., 18012., 18912., 16365., 17274., 18354., 19272., 16671., 17598.,
      18696., 19632., 16977., 17922., 19038., 19992., 21567., 22782., 24168.,
      25392., 21873., 23106., 24510., 25752., 22179., 23430., 24852., 26112.,
      22485., 23754., 25194., 26472., 23403., 24726., 26220., 27552., 23709.,
      25050., 26562., 27912., 24015., 25374., 26904., 28272., 24321., 25698.,
      27246., 28632., 25239., 26670., 28272., 29712., 25545., 26994., 28614.,
      30072., 25851., 27318., 28956., 30432., 26157., 27642., 29298., 30792.};
  const std::array<int, 4> in_shape = {{3, 5, 6, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x5x6x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1872.,  1904.,  1936.,  1968.,  2212.,  2248.,  2284.,  2320.,  2926.,
      2980.,  3034.,  3088.,  3436.,  3496.,  3556.,  3616.,  3466.,  3532.,
      3598.,  3664.,  4024.,  4096.,  4168.,  4240.,  4006.,  4084.,  4162.,
      4240.,  4612.,  4696.,  4780.,  4864.,  4546.,  4636.,  4726.,  4816.,
      5200.,  5296.,  5392.,  5488.,  2928.,  2992.,  3056.,  3120.,  3364.,
      3432.,  3500.,  3568.,  4284.,  4368.,  4452.,  4536.,  4866.,  4956.,
      5046.,  5136.,  6279.,  6414.,  6549.,  6684.,  7152.,  7296.,  7440.,
      7584.,  6873.,  7026.,  7179.,  7332.,  7818.,  7980.,  8142.,  8304.,
      7467.,  7638.,  7809.,  7980.,  8484.,  8664.,  8844.,  9024.,  8061.,
      8250.,  8439.,  8628.,  9150.,  9348.,  9546.,  9744.,  5004.,  5136.,
      5268.,  5400.,  5730.,  5868.,  6006.,  6144.,  6948.,  7104.,  7260.,
      7416.,  7818.,  7980.,  8142.,  8304.,  9843.,  10086., 10329., 10572.,
      11148., 11400., 11652., 11904., 10437., 10698., 10959., 11220., 11814.,
      12084., 12354., 12624., 11031., 11310., 11589., 11868., 12480., 12768.,
      13056., 13344., 11625., 11922., 12219., 12516., 13146., 13452., 13758.,
      14064., 7092.,  7296.,  7500.,  7704.,  8106.,  8316.,  8526.,  8736.,
      9612.,  9840.,  10068., 10296., 10770., 11004., 11238., 11472., 13407.,
      13758., 14109., 14460., 15144., 15504., 15864., 16224., 14001., 14370.,
      14739., 15108., 15810., 16188., 16566., 16944., 14595., 14982., 15369.,
      15756., 16476., 16872., 17268., 17664., 15189., 15594., 15999., 16404.,
      17142., 17556., 17970., 18384., 9180.,  9456.,  9732.,  10008., 10482.,
      10764., 11046., 11328., 4704.,  4880.,  5056.,  5232.,  5524.,  5704.,
      5884.,  6064.,  6166.,  6436.,  6706.,  6976.,  7396.,  7672.,  7948.,
      8224.,  6418.,  6700.,  6982.,  7264.,  7696.,  7984.,  8272.,  8560.,
      6670.,  6964.,  7258.,  7552.,  7996.,  8296.,  8596.,  8896.,  6922.,
      7228.,  7534.,  7840.,  8296.,  8608.,  8920.,  9232.,  3840.,  4048.,
      4256.,  4464.,  4756.,  4968.,  5180.,  5392.,  13632., 13904., 14176.,
      14448., 14932., 15208., 15484., 15760., 19126., 19540., 19954., 20368.,
      21076., 21496., 21916., 22336., 19666., 20092., 20518., 20944., 21664.,
      22096., 22528., 22960., 20206., 20644., 21082., 21520., 22252., 22696.,
      23140., 23584., 20746., 21196., 21646., 22096., 22840., 23296., 23752.,
      24208., 12768., 13072., 13376., 13680., 14164., 14472., 14780., 15088.,
      17604., 18048., 18492., 18936., 19626., 20076., 20526., 20976., 24099.,
      24774., 25449., 26124., 27132., 27816., 28500., 29184., 24693., 25386.,
      26079., 26772., 27798., 28500., 29202., 29904., 25287., 25998., 26709.,
      27420., 28464., 29184., 29904., 30624., 25881., 26610., 27339., 28068.,
      29130., 29868., 30606., 31344., 15444., 15936., 16428., 16920., 17610.,
      18108., 18606., 19104., 20268., 20784., 21300., 21816., 22578., 23100.,
      23622., 24144., 27663., 28446., 29229., 30012., 31128., 31920., 32712.,
      33504., 28257., 29058., 29859., 30660., 31794., 32604., 33414., 34224.,
      28851., 29670., 30489., 31308., 32460., 33288., 34116., 34944., 29445.,
      30282., 31119., 31956., 33126., 33972., 34818., 35664., 17532., 18096.,
      18660., 19224., 19986., 20556., 21126., 21696., 22932., 23520., 24108.,
      24696., 25530., 26124., 26718., 27312., 31227., 32118., 33009., 33900.,
      35124., 36024., 36924., 37824., 31821., 32730., 33639., 34548., 35790.,
      36708., 37626., 38544., 32415., 33342., 34269., 35196., 36456., 37392.,
      38328., 39264., 33009., 33954., 34899., 35844., 37122., 38076., 39030.,
      39984., 19620., 20256., 20892., 21528., 22362., 23004., 23646., 24288.,
      10704., 11120., 11536., 11952., 12484., 12904., 13324., 13744., 13726.,
      14356., 14986., 15616., 16396., 17032., 17668., 18304., 13978., 14620.,
      15262., 15904., 16696., 17344., 17992., 18640., 14230., 14884., 15538.,
      16192., 16996., 17656., 18316., 18976., 14482., 15148., 15814., 16480.,
      17296., 17968., 18640., 19312., 7920.,  8368.,  8816.,  9264.,  9796.,
      10248., 10700., 11152., 25392., 25904., 26416., 26928., 27652., 28168.,
      28684., 29200., 35326., 36100., 36874., 37648., 38716., 39496., 40276.,
      41056., 35866., 36652., 37438., 38224., 39304., 40096., 40888., 41680.,
      36406., 37204., 38002., 38800., 39892., 40696., 41500., 42304., 36946.,
      37756., 38566., 39376., 40480., 41296., 42112., 42928., 22608., 23152.,
      23696., 24240., 24964., 25512., 26060., 26608., 30924., 31728., 32532.,
      33336., 34386., 35196., 36006., 36816., 41919., 43134., 44349., 45564.,
      47112., 48336., 49560., 50784., 42513., 43746., 44979., 46212., 47778.,
      49020., 50262., 51504., 43107., 44358., 45609., 46860., 48444., 49704.,
      50964., 52224., 43701., 44970., 46239., 47508., 49110., 50388., 51666.,
      52944., 25884., 26736., 27588., 28440., 29490., 30348., 31206., 32064.,
      33588., 34464., 35340., 36216., 37338., 38220., 39102., 39984., 45483.,
      46806., 48129., 49452., 51108., 52440., 53772., 55104., 46077., 47418.,
      48759., 50100., 51774., 53124., 54474., 55824., 46671., 48030., 49389.,
      50748., 52440., 53808., 55176., 56544., 47265., 48642., 50019., 51396.,
      53106., 54492., 55878., 57264., 27972., 28896., 29820., 30744., 31866.,
      32796., 33726., 34656., 36252., 37200., 38148., 39096., 40290., 41244.,
      42198., 43152., 49047., 50478., 51909., 53340., 55104., 56544., 57984.,
      59424., 49641., 51090., 52539., 53988., 55770., 57228., 58686., 60144.,
      50235., 51702., 53169., 54636., 56436., 57912., 59388., 60864., 50829.,
      52314., 53799., 55284., 57102., 58596., 60090., 61584., 30060., 31056.,
      32052., 33048., 34242., 35244., 36246., 37248., 16704., 17360., 18016.,
      18672., 19444., 20104., 20764., 21424., 21286., 22276., 23266., 24256.,
      25396., 26392., 27388., 28384., 21538., 22540., 23542., 24544., 25696.,
      26704., 27712., 28720., 21790., 22804., 23818., 24832., 25996., 27016.,
      28036., 29056., 22042., 23068., 24094., 25120., 26296., 27328., 28360.,
      29392., 12000., 12688., 13376., 14064., 14836., 15528., 16220., 16912.};
  const std::array<int, 4> in_shape = {{3, 5, 6, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x5x6x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6279.,  6414.,  6549.,  6684.,  7152.,  7296.,  7440.,  7584.,  6873.,
      7026.,  7179.,  7332.,  7818.,  7980.,  8142.,  8304.,  7467.,  7638.,
      7809.,  7980.,  8484.,  8664.,  8844.,  9024.,  8061.,  8250.,  8439.,
      8628.,  9150.,  9348.,  9546.,  9744.,  9843.,  10086., 10329., 10572.,
      11148., 11400., 11652., 11904., 10437., 10698., 10959., 11220., 11814.,
      12084., 12354., 12624., 11031., 11310., 11589., 11868., 12480., 12768.,
      13056., 13344., 11625., 11922., 12219., 12516., 13146., 13452., 13758.,
      14064., 13407., 13758., 14109., 14460., 15144., 15504., 15864., 16224.,
      14001., 14370., 14739., 15108., 15810., 16188., 16566., 16944., 14595.,
      14982., 15369., 15756., 16476., 16872., 17268., 17664., 15189., 15594.,
      15999., 16404., 17142., 17556., 17970., 18384., 24099., 24774., 25449.,
      26124., 27132., 27816., 28500., 29184., 24693., 25386., 26079., 26772.,
      27798., 28500., 29202., 29904., 25287., 25998., 26709., 27420., 28464.,
      29184., 29904., 30624., 25881., 26610., 27339., 28068., 29130., 29868.,
      30606., 31344., 27663., 28446., 29229., 30012., 31128., 31920., 32712.,
      33504., 28257., 29058., 29859., 30660., 31794., 32604., 33414., 34224.,
      28851., 29670., 30489., 31308., 32460., 33288., 34116., 34944., 29445.,
      30282., 31119., 31956., 33126., 33972., 34818., 35664., 31227., 32118.,
      33009., 33900., 35124., 36024., 36924., 37824., 31821., 32730., 33639.,
      34548., 35790., 36708., 37626., 38544., 32415., 33342., 34269., 35196.,
      36456., 37392., 38328., 39264., 33009., 33954., 34899., 35844., 37122.,
      38076., 39030., 39984., 41919., 43134., 44349., 45564., 47112., 48336.,
      49560., 50784., 42513., 43746., 44979., 46212., 47778., 49020., 50262.,
      51504., 43107., 44358., 45609., 46860., 48444., 49704., 50964., 52224.,
      43701., 44970., 46239., 47508., 49110., 50388., 51666., 52944., 45483.,
      46806., 48129., 49452., 51108., 52440., 53772., 55104., 46077., 47418.,
      48759., 50100., 51774., 53124., 54474., 55824., 46671., 48030., 49389.,
      50748., 52440., 53808., 55176., 56544., 47265., 48642., 50019., 51396.,
      53106., 54492., 55878., 57264., 49047., 50478., 51909., 53340., 55104.,
      56544., 57984., 59424., 49641., 51090., 52539., 53988., 55770., 57228.,
      58686., 60144., 50235., 51702., 53169., 54636., 56436., 57912., 59388.,
      60864., 50829., 52314., 53799., 55284., 57102., 58596., 60090., 61584.};
  const std::array<int, 4> in_shape = {{3, 5, 6, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x5x6x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1804.,  1968.,  2140.,  2320.,  2842.,  3088.,  3346.,  3616.,  3394.,
      3664.,  3946.,  4240.,  3946.,  4240.,  4546.,  4864.,  4498.,  4816.,
      5146.,  5488.,  2908.,  3120.,  3340.,  3568.,  4254.,  4536.,  4830.,
      5136.,  6261.,  6684.,  7125.,  7584.,  6873.,  7332.,  7809.,  8304.,
      7485.,  7980.,  8493.,  9024.,  8097.,  8628.,  9177.,  9744.,  5046.,
      5400.,  5766.,  6144.,  6990.,  7416.,  7854.,  8304.,  9933.,  10572.,
      11229., 11904., 10545., 11220., 11913., 12624., 11157., 11868., 12597.,
      13344., 11769., 12516., 13281., 14064., 7206.,  7704.,  8214.,  8736.,
      9726.,  10296., 10878., 11472., 13605., 14460., 15333., 16224., 14217.,
      15108., 16017., 16944., 14829., 15756., 16701., 17664., 15441., 16404.,
      17385., 18384., 9366.,  10008., 10662., 11328., 4828.,  5232.,  5644.,
      6064.,  6370.,  6976.,  7594.,  8224.,  6634.,  7264.,  7906.,  8560.,
      6898.,  7552.,  8218.,  8896.,  7162.,  7840.,  8530.,  9232.,  4012.,
      4464.,  4924.,  5392.,  13804., 14448., 15100., 15760., 19402., 20368.,
      21346., 22336., 19954., 20944., 21946., 22960., 20506., 21520., 22546.,
      23584., 21058., 22096., 23146., 24208., 12988., 13680., 14380., 15088.,
      17934., 18936., 19950., 20976., 24621., 26124., 27645., 29184., 25233.,
      26772., 28329., 29904., 25845., 27420., 29013., 30624., 26457., 28068.,
      29697., 31344., 15846., 16920., 18006., 19104., 20670., 21816., 22974.,
      24144., 28293., 30012., 31749., 33504., 28905., 30660., 32433., 34224.,
      29517., 31308., 33117., 34944., 30129., 31956., 33801., 35664., 18006.,
      19224., 20454., 21696., 23406., 24696., 25998., 27312., 31965., 33900.,
      35853., 37824., 32577., 34548., 36537., 38544., 33189., 35196., 37221.,
      39264., 33801., 35844., 37905., 39984., 20166., 21528., 22902., 24288.,
      11068., 11952., 12844., 13744., 14290., 15616., 16954., 18304., 14554.,
      15904., 17266., 18640., 14818., 16192., 17578., 18976., 15082., 16480.,
      17890., 19312., 8332.,  9264.,  10204., 11152., 25804., 26928., 28060.,
      29200., 35962., 37648., 39346., 41056., 36514., 38224., 39946., 41680.,
      37066., 38800., 40546., 42304., 37618., 39376., 41146., 42928., 23068.,
      24240., 25420., 26608., 31614., 33336., 35070., 36816., 42981., 45564.,
      48165., 50784., 43593., 46212., 48849., 51504., 44205., 46860., 49533.,
      52224., 44817., 47508., 50217., 52944., 26646., 28440., 30246., 32064.,
      34350., 36216., 38094., 39984., 46653., 49452., 52269., 55104., 47265.,
      50100., 52953., 55824., 47877., 50748., 53637., 56544., 48489., 51396.,
      54321., 57264., 28806., 30744., 32694., 34656., 37086., 39096., 41118.,
      43152., 50325., 53340., 56373., 59424., 50937., 53988., 57057., 60144.,
      51549., 54636., 57741., 60864., 52161., 55284., 58425., 61584., 30966.,
      33048., 35142., 37248., 17308., 18672., 20044., 21424., 22210., 24256.,
      26314., 28384., 22474., 24544., 26626., 28720., 22738., 24832., 26938.,
      29056., 23002., 25120., 27250., 29392., 12652., 14064., 15484., 16912.};
  const std::array<int, 4> in_shape = {{3, 5, 6, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x5x6x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6261.,  6684.,  7125.,  7584.,  6873.,  7332.,  7809.,  8304.,  7485.,
      7980.,  8493.,  9024.,  8097.,  8628.,  9177.,  9744.,  9933.,  10572.,
      11229., 11904., 10545., 11220., 11913., 12624., 11157., 11868., 12597.,
      13344., 11769., 12516., 13281., 14064., 13605., 14460., 15333., 16224.,
      14217., 15108., 16017., 16944., 14829., 15756., 16701., 17664., 15441.,
      16404., 17385., 18384., 24621., 26124., 27645., 29184., 25233., 26772.,
      28329., 29904., 25845., 27420., 29013., 30624., 26457., 28068., 29697.,
      31344., 28293., 30012., 31749., 33504., 28905., 30660., 32433., 34224.,
      29517., 31308., 33117., 34944., 30129., 31956., 33801., 35664., 31965.,
      33900., 35853., 37824., 32577., 34548., 36537., 38544., 33189., 35196.,
      37221., 39264., 33801., 35844., 37905., 39984., 42981., 45564., 48165.,
      50784., 43593., 46212., 48849., 51504., 44205., 46860., 49533., 52224.,
      44817., 47508., 50217., 52944., 46653., 49452., 52269., 55104., 47265.,
      50100., 52953., 55824., 47877., 50748., 53637., 56544., 48489., 51396.,
      54321., 57264., 50325., 53340., 56373., 59424., 50937., 53988., 57057.,
      60144., 51549., 54636., 57741., 60864., 52161., 55284., 58425., 61584.};
  const std::array<int, 4> in_shape = {{3, 5, 6, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x5x6x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3548.,   3608.,   3872.,   3936.,   4212.,   4280.,   4568.,   4640.,
      5582.,   5684.,   6068.,   6176.,   6578.,   6692.,   7112.,   7232.,
      6662.,   6788.,   7196.,   7328.,   7754.,   7892.,   8336.,   8480.,
      7742.,   7892.,   8324.,   8480.,   8930.,   9092.,   9560.,   9728.,
      8822.,   8996.,   9452.,   9632.,   10106.,  10292.,  10784.,  10976.,
      5692.,   5816.,   6112.,   6240.,   6548.,   6680.,   7000.,   7136.,
      8346.,   8508.,   8904.,   9072.,   9486.,   9660.,   10092.,  10272.,
      12261.,  12522.,  13098.,  13368.,  13971.,  14250.,  14880.,  15168.,
      13449.,  13746.,  14358.,  14664.,  15303.,  15618.,  16284.,  16608.,
      14637.,  14970.,  15618.,  15960.,  16635.,  16986.,  17688.,  18048.,
      15825.,  16194.,  16878.,  17256.,  17967.,  18354.,  19092.,  19488.,
      9834.,   10092.,  10536.,  10800.,  11262.,  11532.,  12012.,  12288.,
      13674.,  13980.,  14520.,  14832.,  15390.,  15708.,  16284.,  16608.,
      19389.,  19866.,  20658.,  21144.,  21963.,  22458.,  23304.,  23808.,
      20577.,  21090.,  21918.,  22440.,  23295.,  23826.,  24708.,  25248.,
      21765.,  22314.,  23178.,  23736.,  24627.,  25194.,  26112.,  26688.,
      22953.,  23538.,  24438.,  25032.,  25959.,  26562.,  27516.,  28128.,
      14010.,  14412.,  15000.,  15408.,  16014.,  16428.,  17052.,  17472.,
      19002.,  19452.,  20136.,  20592.,  21294.,  21756.,  22476.,  22944.,
      26517.,  27210.,  28218.,  28920.,  29955.,  30666.,  31728.,  32448.,
      27705.,  28434.,  29478.,  30216.,  31287.,  32034.,  33132.,  33888.,
      28893.,  29658.,  30738.,  31512.,  32619.,  33402.,  34536.,  35328.,
      30081.,  30882.,  31998.,  32808.,  33951.,  34770.,  35940.,  36768.,
      18186.,  18732.,  19464.,  20016.,  20766.,  21324.,  22092.,  22656.,
      9308.,   9656.,   10112.,  10464.,  10932.,  11288.,  11768.,  12128.,
      12206.,  12740.,  13412.,  13952.,  14642.,  15188.,  15896.,  16448.,
      12710.,  13268.,  13964.,  14528.,  15242.,  15812.,  16544.,  17120.,
      13214.,  13796.,  14516.,  15104.,  15842.,  16436.,  17192.,  17792.,
      13718.,  14324.,  15068.,  15680.,  16442.,  17060.,  17840.,  18464.,
      7612.,   8024.,   8512.,   8928.,   9428.,   9848.,   10360.,  10784.,
      27068.,  27608.,  28352.,  28896.,  29652.,  30200.,  30968.,  31520.,
      37982.,  38804.,  39908.,  40736.,  41858.,  42692.,  43832.,  44672.,
      39062.,  39908.,  41036.,  41888.,  43034.,  43892.,  45056.,  45920.,
      40142.,  41012.,  42164.,  43040.,  44210.,  45092.,  46280.,  47168.,
      41222.,  42116.,  43292.,  44192.,  45386.,  46292.,  47504.,  48416.,
      25372.,  25976.,  26752.,  27360.,  28148.,  28760.,  29560.,  30176.,
      34986.,  35868.,  36984.,  37872.,  39006.,  39900.,  41052.,  41952.,
      47901.,  49242.,  50898.,  52248.,  53931.,  55290.,  57000.,  58368.,
      49089.,  50466.,  52158.,  53544.,  55263.,  56658.,  58404.,  59808.,
      50277.,  51690.,  53418.,  54840.,  56595.,  58026.,  59808.,  61248.,
      51465.,  52914.,  54678.,  56136.,  57927.,  59394.,  61212.,  62688.,
      30714.,  31692.,  32856.,  33840.,  35022.,  36012.,  37212.,  38208.,
      40314.,  41340.,  42600.,  43632.,  44910.,  45948.,  47244.,  48288.,
      55029.,  56586.,  58458.,  60024.,  61923.,  63498.,  65424.,  67008.,
      56217.,  57810.,  59718.,  61320.,  63255.,  64866.,  66828.,  68448.,
      57405.,  59034.,  60978.,  62616.,  64587.,  66234.,  68232.,  69888.,
      58593.,  60258.,  62238.,  63912.,  65919.,  67602.,  69636.,  71328.,
      34890.,  36012.,  37320.,  38448.,  39774.,  40908.,  42252.,  43392.,
      45642.,  46812.,  48216.,  49392.,  50814.,  51996.,  53436.,  54624.,
      62157.,  63930.,  66018.,  67800.,  69915.,  71706.,  73848.,  75648.,
      63345.,  65154.,  67278.,  69096.,  71247.,  73074.,  75252.,  77088.,
      64533.,  66378.,  68538.,  70392.,  72579.,  74442.,  76656.,  78528.,
      65721.,  67602.,  69798.,  71688.,  73911.,  75810.,  78060.,  79968.,
      39066.,  40332.,  41784.,  43056.,  44526.,  45804.,  47292.,  48576.,
      21308.,  22136.,  23072.,  23904.,  24852.,  25688.,  26648.,  27488.,
      27326.,  28580.,  29972.,  31232.,  32642.,  33908.,  35336.,  36608.,
      27830.,  29108.,  30524.,  31808.,  33242.,  34532.,  35984.,  37280.,
      28334.,  29636.,  31076.,  32384.,  33842.,  35156.,  36632.,  37952.,
      28838.,  30164.,  31628.,  32960.,  34442.,  35780.,  37280.,  38624.,
      15772.,  16664.,  17632.,  18528.,  19508.,  20408.,  21400.,  22304.,
      50588.,  51608.,  52832.,  53856.,  55092.,  56120.,  57368.,  58400.,
      70382.,  71924.,  73748.,  75296.,  77138.,  78692.,  80552.,  82112.,
      71462.,  73028.,  74876.,  76448.,  78314.,  79892.,  81776.,  83360.,
      72542.,  74132.,  76004.,  77600.,  79490.,  81092.,  83000.,  84608.,
      73622.,  75236.,  77132.,  78752.,  80666.,  82292.,  84224.,  85856.,
      45052.,  46136.,  47392.,  48480.,  49748.,  50840.,  52120.,  53216.,
      61626.,  63228.,  65064.,  66672.,  68526.,  70140.,  72012.,  73632.,
      83541.,  85962.,  88698.,  91128.,  93891.,  96330.,  99120.,  101568.,
      84729.,  87186.,  89958.,  92424.,  95223.,  97698.,  100524., 103008.,
      85917.,  88410.,  91218.,  93720.,  96555.,  99066.,  101928., 104448.,
      87105.,  89634.,  92478.,  95016.,  97887.,  100434., 103332., 105888.,
      51594.,  53292.,  55176.,  56880.,  58782.,  60492.,  62412.,  64128.,
      66954.,  68700.,  70680.,  72432.,  74430.,  76188.,  78204.,  79968.,
      90669.,  93306.,  96258.,  98904.,  101883., 104538., 107544., 110208.,
      91857.,  94530.,  97518.,  100200., 103215., 105906., 108948., 111648.,
      93045.,  95754.,  98778.,  101496., 104547., 107274., 110352., 113088.,
      94233.,  96978.,  100038., 102792., 105879., 108642., 111756., 114528.,
      55770.,  57612.,  59640.,  61488.,  63534.,  65388.,  67452.,  69312.,
      72282.,  74172.,  76296.,  78192.,  80334.,  82236.,  84396.,  86304.,
      97797.,  100650., 103818., 106680., 109875., 112746., 115968., 118848.,
      98985.,  101874., 105078., 107976., 111207., 114114., 117372., 120288.,
      100173., 103098., 106338., 109272., 112539., 115482., 118776., 121728.,
      101361., 104322., 107598., 110568., 113871., 116850., 120180., 123168.,
      59946.,  61932.,  64104.,  66096.,  68286.,  70284.,  72492.,  74496.,
      33308.,  34616.,  36032.,  37344.,  38772.,  40088.,  41528.,  42848.,
      42446.,  44420.,  46532.,  48512.,  50642.,  52628.,  54776.,  56768.,
      42950.,  44948.,  47084.,  49088.,  51242.,  53252.,  55424.,  57440.,
      43454.,  45476.,  47636.,  49664.,  51842.,  53876.,  56072.,  58112.,
      43958.,  46004.,  48188.,  50240.,  52442.,  54500.,  56720.,  58784.,
      23932.,  25304.,  26752.,  28128.,  29588.,  30968.,  32440.,  33824.};
  const std::array<int, 4> in_shape = {{3, 5, 6, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x5x6x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      12261.,  12522.,  13098.,  13368.,  13971.,  14250.,  14880.,  15168.,
      13449.,  13746.,  14358.,  14664.,  15303.,  15618.,  16284.,  16608.,
      14637.,  14970.,  15618.,  15960.,  16635.,  16986.,  17688.,  18048.,
      15825.,  16194.,  16878.,  17256.,  17967.,  18354.,  19092.,  19488.,
      19389.,  19866.,  20658.,  21144.,  21963.,  22458.,  23304.,  23808.,
      20577.,  21090.,  21918.,  22440.,  23295.,  23826.,  24708.,  25248.,
      21765.,  22314.,  23178.,  23736.,  24627.,  25194.,  26112.,  26688.,
      22953.,  23538.,  24438.,  25032.,  25959.,  26562.,  27516.,  28128.,
      26517.,  27210.,  28218.,  28920.,  29955.,  30666.,  31728.,  32448.,
      27705.,  28434.,  29478.,  30216.,  31287.,  32034.,  33132.,  33888.,
      28893.,  29658.,  30738.,  31512.,  32619.,  33402.,  34536.,  35328.,
      30081.,  30882.,  31998.,  32808.,  33951.,  34770.,  35940.,  36768.,
      47901.,  49242.,  50898.,  52248.,  53931.,  55290.,  57000.,  58368.,
      49089.,  50466.,  52158.,  53544.,  55263.,  56658.,  58404.,  59808.,
      50277.,  51690.,  53418.,  54840.,  56595.,  58026.,  59808.,  61248.,
      51465.,  52914.,  54678.,  56136.,  57927.,  59394.,  61212.,  62688.,
      55029.,  56586.,  58458.,  60024.,  61923.,  63498.,  65424.,  67008.,
      56217.,  57810.,  59718.,  61320.,  63255.,  64866.,  66828.,  68448.,
      57405.,  59034.,  60978.,  62616.,  64587.,  66234.,  68232.,  69888.,
      58593.,  60258.,  62238.,  63912.,  65919.,  67602.,  69636.,  71328.,
      62157.,  63930.,  66018.,  67800.,  69915.,  71706.,  73848.,  75648.,
      63345.,  65154.,  67278.,  69096.,  71247.,  73074.,  75252.,  77088.,
      64533.,  66378.,  68538.,  70392.,  72579.,  74442.,  76656.,  78528.,
      65721.,  67602.,  69798.,  71688.,  73911.,  75810.,  78060.,  79968.,
      83541.,  85962.,  88698.,  91128.,  93891.,  96330.,  99120.,  101568.,
      84729.,  87186.,  89958.,  92424.,  95223.,  97698.,  100524., 103008.,
      85917.,  88410.,  91218.,  93720.,  96555.,  99066.,  101928., 104448.,
      87105.,  89634.,  92478.,  95016.,  97887.,  100434., 103332., 105888.,
      90669.,  93306.,  96258.,  98904.,  101883., 104538., 107544., 110208.,
      91857.,  94530.,  97518.,  100200., 103215., 105906., 108948., 111648.,
      93045.,  95754.,  98778.,  101496., 104547., 107274., 110352., 113088.,
      94233.,  96978.,  100038., 102792., 105879., 108642., 111756., 114528.,
      97797.,  100650., 103818., 106680., 109875., 112746., 115968., 118848.,
      98985.,  101874., 105078., 107976., 111207., 114114., 117372., 120288.,
      100173., 103098., 106338., 109272., 112539., 115482., 118776., 121728.,
      101361., 104322., 107598., 110568., 113871., 116850., 120180., 123168.};
  const std::array<int, 4> in_shape = {{3, 5, 6, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x5x6x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      7036.,   7096.,   7156.,   7216.,   7680.,   7744.,   7808.,   7872.,
      8356.,   8424.,   8492.,   8560.,   9064.,   9136.,   9208.,   9280.,
      11062.,  11164.,  11266.,  11368.,  12028.,  12136.,  12244.,  12352.,
      13042.,  13156.,  13270.,  13384.,  14104.,  14224.,  14344.,  14464.,
      13198.,  13324.,  13450.,  13576.,  14260.,  14392.,  14524.,  14656.,
      15370.,  15508.,  15646.,  15784.,  16528.,  16672.,  16816.,  16960.,
      15334.,  15484.,  15634.,  15784.,  16492.,  16648.,  16804.,  16960.,
      17698.,  17860.,  18022.,  18184.,  18952.,  19120.,  19288.,  19456.,
      17470.,  17644.,  17818.,  17992.,  18724.,  18904.,  19084.,  19264.,
      20026.,  20212.,  20398.,  20584.,  21376.,  21568.,  21760.,  21952.,
      11260.,  11384.,  11508.,  11632.,  12096.,  12224.,  12352.,  12480.,
      12964.,  13096.,  13228.,  13360.,  13864.,  14000.,  14136.,  14272.,
      16530.,  16692.,  16854.,  17016.,  17640.,  17808.,  17976.,  18144.,
      18798.,  18972.,  19146.,  19320.,  20004.,  20184.,  20364.,  20544.,
      24261.,  24522.,  24783.,  25044.,  25926.,  26196.,  26466.,  26736.,
      27663.,  27942.,  28221.,  28500.,  29472.,  29760.,  30048.,  30336.,
      26601.,  26898.,  27195.,  27492.,  28410.,  28716.,  29022.,  29328.,
      30291.,  30606.,  30921.,  31236.,  32244.,  32568.,  32892.,  33216.,
      28941.,  29274.,  29607.,  29940.,  30894.,  31236.,  31578.,  31920.,
      32919.,  33270.,  33621.,  33972.,  35016.,  35376.,  35736.,  36096.,
      31281.,  31650.,  32019.,  32388.,  33378.,  33756.,  34134.,  34512.,
      35547.,  35934.,  36321.,  36708.,  37788.,  38184.,  38580.,  38976.,
      19410.,  19668.,  19926.,  20184.,  20808.,  21072.,  21336.,  21600.,
      22254.,  22524.,  22794.,  23064.,  23748.,  24024.,  24300.,  24576.,
      27042.,  27348.,  27654.,  27960.,  28728.,  29040.,  29352.,  29664.,
      30462.,  30780.,  31098.,  31416.,  32244.,  32568.,  32892.,  33216.,
      38301.,  38778.,  39255.,  39732.,  40830.,  41316.,  41802.,  42288.,
      43431.,  43926.,  44421.,  44916.,  46104.,  46608.,  47112.,  47616.,
      40641.,  41154.,  41667.,  42180.,  43314.,  43836.,  44358.,  44880.,
      46059.,  46590.,  47121.,  47652.,  48876.,  49416.,  49956.,  50496.,
      42981.,  43530.,  44079.,  44628.,  45798.,  46356.,  46914.,  47472.,
      48687.,  49254.,  49821.,  50388.,  51648.,  52224.,  52800.,  53376.,
      45321.,  45906.,  46491.,  47076.,  48282.,  48876.,  49470.,  50064.,
      51315.,  51918.,  52521.,  53124.,  54420.,  55032.,  55644.,  56256.,
      27618.,  28020.,  28422.,  28824.,  29592.,  30000.,  30408.,  30816.,
      31614.,  32028.,  32442.,  32856.,  33684.,  34104.,  34524.,  34944.,
      37554.,  38004.,  38454.,  38904.,  39816.,  40272.,  40728.,  41184.,
      42126.,  42588.,  43050.,  43512.,  44484.,  44952.,  45420.,  45888.,
      52341.,  53034.,  53727.,  54420.,  55734.,  56436.,  57138.,  57840.,
      59199.,  59910.,  60621.,  61332.,  62736.,  63456.,  64176.,  64896.,
      54681.,  55410.,  56139.,  56868.,  58218.,  58956.,  59694.,  60432.,
      61827.,  62574.,  63321.,  64068.,  65508.,  66264.,  67020.,  67776.,
      57021.,  57786.,  58551.,  59316.,  60702.,  61476.,  62250.,  63024.,
      64455.,  65238.,  66021.,  66804.,  68280.,  69072.,  69864.,  70656.,
      59361.,  60162.,  60963.,  61764.,  63186.,  63996.,  64806.,  65616.,
      67083.,  67902.,  68721.,  69540.,  71052.,  71880.,  72708.,  73536.,
      35826.,  36372.,  36918.,  37464.,  38376.,  38928.,  39480.,  40032.,
      40974.,  41532.,  42090.,  42648.,  43620.,  44184.,  44748.,  45312.,
      18268.,  18616.,  18964.,  19312.,  19872.,  20224.,  20576.,  20928.,
      21508.,  21864.,  22220.,  22576.,  23176.,  23536.,  23896.,  24256.,
      23878.,  24412.,  24946.,  25480.,  26284.,  26824.,  27364.,  27904.,
      28738.,  29284.,  29830.,  30376.,  31240.,  31792.,  32344.,  32896.,
      24862.,  25420.,  25978.,  26536.,  27364.,  27928.,  28492.,  29056.,
      29914.,  30484.,  31054.,  31624.,  32512.,  33088.,  33664.,  34240.,
      25846.,  26428.,  27010.,  27592.,  28444.,  29032.,  29620.,  30208.,
      31090.,  31684.,  32278.,  32872.,  33784.,  34384.,  34984.,  35584.,
      26830.,  27436.,  28042.,  28648.,  29524.,  30136.,  30748.,  31360.,
      32266.,  32884.,  33502.,  34120.,  35056.,  35680.,  36304.,  36928.,
      14812.,  15224.,  15636.,  16048.,  16608.,  17024.,  17440.,  17856.,
      18436.,  18856.,  19276.,  19696.,  20296.,  20720.,  21144.,  21568.,
      53596.,  54136.,  54676.,  55216.,  56160.,  56704.,  57248.,  57792.,
      58756.,  59304.,  59852.,  60400.,  61384.,  61936.,  62488.,  63040.,
      75142.,  75964.,  76786.,  77608.,  78988.,  79816.,  80644.,  81472.,
      82882.,  83716.,  84550.,  85384.,  86824.,  87664.,  88504.,  89344.,
      77278.,  78124.,  78970.,  79816.,  81220.,  82072.,  82924.,  83776.,
      85210.,  86068.,  86926.,  87784.,  89248.,  90112.,  90976.,  91840.,
      79414.,  80284.,  81154.,  82024.,  83452.,  84328.,  85204.,  86080.,
      87538.,  88420.,  89302.,  90184.,  91672.,  92560.,  93448.,  94336.,
      81550.,  82444.,  83338.,  84232.,  85684.,  86584.,  87484.,  88384.,
      89866.,  90772.,  91678.,  92584.,  94096.,  95008.,  95920.,  96832.,
      50140.,  50744.,  51348.,  51952.,  52896.,  53504.,  54112.,  54720.,
      55684.,  56296.,  56908.,  57520.,  58504.,  59120.,  59736.,  60352.,
      69090.,  69972.,  70854.,  71736.,  73080.,  73968.,  74856.,  75744.,
      77118.,  78012.,  78906.,  79800.,  81204.,  82104.,  83004.,  83904.,
      94461.,  95802.,  97143.,  98484.,  100446., 101796., 103146., 104496.,
      106503., 107862., 109221., 110580., 112632., 114000., 115368., 116736.,
      96801.,  98178.,  99555.,  100932., 102930., 104316., 105702., 107088.,
      109131., 110526., 111921., 113316., 115404., 116808., 118212., 119616.,
      99141.,  100554., 101967., 103380., 105414., 106836., 108258., 109680.,
      111759., 113190., 114621., 116052., 118176., 119616., 121056., 122496.,
      101481., 102930., 104379., 105828., 107898., 109356., 110814., 112272.,
      114387., 115854., 117321., 118788., 120948., 122424., 123900., 125376.,
      60450.,  61428.,  62406.,  63384.,  64728.,  65712.,  66696.,  67680.,
      69054.,  70044.,  71034.,  72024.,  73428.,  74424.,  75420.,  76416.,
      79602.,  80628.,  81654.,  82680.,  84168.,  85200.,  86232.,  87264.,
      88782.,  89820.,  90858.,  91896.,  93444.,  94488.,  95532.,  96576.,
      108501., 110058., 111615., 113172., 115350., 116916., 118482., 120048.,
      122271., 123846., 125421., 126996., 129264., 130848., 132432., 134016.,
      110841., 112434., 114027., 115620., 117834., 119436., 121038., 122640.,
      124899., 126510., 128121., 129732., 132036., 133656., 135276., 136896.,
      113181., 114810., 116439., 118068., 120318., 121956., 123594., 125232.,
      127527., 129174., 130821., 132468., 134808., 136464., 138120., 139776.,
      115521., 117186., 118851., 120516., 122802., 124476., 126150., 127824.,
      130155., 131838., 133521., 135204., 137580., 139272., 140964., 142656.,
      68658.,  69780.,  70902.,  72024.,  73512.,  74640.,  75768.,  76896.,
      78414.,  79548.,  80682.,  81816.,  83364.,  84504.,  85644.,  86784.,
      90114.,  91284.,  92454.,  93624.,  95256.,  96432.,  97608.,  98784.,
      100446., 101628., 102810., 103992., 105684., 106872., 108060., 109248.,
      122541., 124314., 126087., 127860., 130254., 132036., 133818., 135600.,
      138039., 139830., 141621., 143412., 145896., 147696., 149496., 151296.,
      124881., 126690., 128499., 130308., 132738., 134556., 136374., 138192.,
      140667., 142494., 144321., 146148., 148668., 150504., 152340., 154176.,
      127221., 129066., 130911., 132756., 135222., 137076., 138930., 140784.,
      143295., 145158., 147021., 148884., 151440., 153312., 155184., 157056.,
      129561., 131442., 133323., 135204., 137706., 139596., 141486., 143376.,
      145923., 147822., 149721., 151620., 154212., 156120., 158028., 159936.,
      76866.,  78132.,  79398.,  80664.,  82296.,  83568.,  84840.,  86112.,
      87774.,  89052.,  90330.,  91608.,  93300.,  94584.,  95868.,  97152.,
      41788.,  42616.,  43444.,  44272.,  45312.,  46144.,  46976.,  47808.,
      48868.,  49704.,  50540.,  51376.,  52456.,  53296.,  54136.,  54976.,
      53398.,  54652.,  55906.,  57160.,  58684.,  59944.,  61204.,  62464.,
      64018.,  65284.,  66550.,  67816.,  69400.,  70672.,  71944.,  73216.,
      54382.,  55660.,  56938.,  58216.,  59764.,  61048.,  62332.,  63616.,
      65194.,  66484.,  67774.,  69064.,  70672.,  71968.,  73264.,  74560.,
      55366.,  56668.,  57970.,  59272.,  60844.,  62152.,  63460.,  64768.,
      66370.,  67684.,  68998.,  70312.,  71944.,  73264.,  74584.,  75904.,
      56350.,  57676.,  59002.,  60328.,  61924.,  63256.,  64588.,  65920.,
      67546.,  68884.,  70222.,  71560.,  73216.,  74560.,  75904.,  77248.,
      30652.,  31544.,  32436.,  33328.,  34368.,  35264.,  36160.,  37056.,
      38116.,  39016.,  39916.,  40816.,  41896.,  42800.,  43704.,  44608.,
      100156., 101176., 102196., 103216., 104640., 105664., 106688., 107712.,
      109156., 110184., 111212., 112240., 113704., 114736., 115768., 116800.,
      139222., 140764., 142306., 143848., 145948., 147496., 149044., 150592.,
      152722., 154276., 155830., 157384., 159544., 161104., 162664., 164224.,
      141358., 142924., 144490., 146056., 148180., 149752., 151324., 152896.,
      155050., 156628., 158206., 159784., 161968., 163552., 165136., 166720.,
      143494., 145084., 146674., 148264., 150412., 152008., 153604., 155200.,
      157378., 158980., 160582., 162184., 164392., 166000., 167608., 169216.,
      145630., 147244., 148858., 150472., 152644., 154264., 155884., 157504.,
      159706., 161332., 162958., 164584., 166816., 168448., 170080., 171712.,
      89020.,  90104.,  91188.,  92272.,  93696.,  94784.,  95872.,  96960.,
      98404.,  99496.,  100588., 101680., 103144., 104240., 105336., 106432.,
      121650., 123252., 124854., 126456., 128520., 130128., 131736., 133344.,
      135438., 137052., 138666., 140280., 142404., 144024., 145644., 147264.,
      164661., 167082., 169503., 171924., 174966., 177396., 179826., 182256.,
      185343., 187782., 190221., 192660., 195792., 198240., 200688., 203136.,
      167001., 169458., 171915., 174372., 177450., 179916., 182382., 184848.,
      187971., 190446., 192921., 195396., 198564., 201048., 203532., 206016.,
      169341., 171834., 174327., 176820., 179934., 182436., 184938., 187440.,
      190599., 193110., 195621., 198132., 201336., 203856., 206376., 208896.,
      171681., 174210., 176739., 179268., 182418., 184956., 187494., 190032.,
      193227., 195774., 198321., 200868., 204108., 206664., 209220., 211776.,
      101490., 103188., 104886., 106584., 108648., 110352., 112056., 113760.,
      115854., 117564., 119274., 120984., 123108., 124824., 126540., 128256.,
      132162., 133908., 135654., 137400., 139608., 141360., 143112., 144864.,
      147102., 148860., 150618., 152376., 154644., 156408., 158172., 159936.,
      178701., 181338., 183975., 186612., 189870., 192516., 195162., 197808.,
      201111., 203766., 206421., 209076., 212424., 215088., 217752., 220416.,
      181041., 183714., 186387., 189060., 192354., 195036., 197718., 200400.,
      203739., 206430., 209121., 211812., 215196., 217896., 220596., 223296.,
      183381., 186090., 188799., 191508., 194838., 197556., 200274., 202992.,
      206367., 209094., 211821., 214548., 217968., 220704., 223440., 226176.,
      185721., 188466., 191211., 193956., 197322., 200076., 202830., 205584.,
      208995., 211758., 214521., 217284., 220740., 223512., 226284., 229056.,
      109698., 111540., 113382., 115224., 117432., 119280., 121128., 122976.,
      125214., 127068., 128922., 130776., 133044., 134904., 136764., 138624.,
      142674., 144564., 146454., 148344., 150696., 152592., 154488., 156384.,
      158766., 160668., 162570., 164472., 166884., 168792., 170700., 172608.,
      192741., 195594., 198447., 201300., 204774., 207636., 210498., 213360.,
      216879., 219750., 222621., 225492., 229056., 231936., 234816., 237696.,
      195081., 197970., 200859., 203748., 207258., 210156., 213054., 215952.,
      219507., 222414., 225321., 228228., 231828., 234744., 237660., 240576.,
      197421., 200346., 203271., 206196., 209742., 212676., 215610., 218544.,
      222135., 225078., 228021., 230964., 234600., 237552., 240504., 243456.,
      199761., 202722., 205683., 208644., 212226., 215196., 218166., 221136.,
      224763., 227742., 230721., 233700., 237372., 240360., 243348., 246336.,
      117906., 119892., 121878., 123864., 126216., 128208., 130200., 132192.,
      134574., 136572., 138570., 140568., 142980., 144984., 146988., 148992.,
      65308.,  66616.,  67924.,  69232.,  70752.,  72064.,  73376.,  74688.,
      76228.,  77544.,  78860.,  80176.,  81736.,  83056.,  84376.,  85696.,
      82918.,  84892.,  86866.,  88840.,  91084.,  93064.,  95044.,  97024.,
      99298.,  101284., 103270., 105256., 107560., 109552., 111544., 113536.,
      83902.,  85900.,  87898.,  89896.,  92164.,  94168.,  96172.,  98176.,
      100474., 102484., 104494., 106504., 108832., 110848., 112864., 114880.,
      84886.,  86908.,  88930.,  90952.,  93244.,  95272.,  97300.,  99328.,
      101650., 103684., 105718., 107752., 110104., 112144., 114184., 116224.,
      85870.,  87916.,  89962.,  92008.,  94324.,  96376.,  98428.,  100480.,
      102826., 104884., 106942., 109000., 111376., 113440., 115504., 117568.,
      46492.,  47864.,  49236.,  50608.,  52128.,  53504.,  54880.,  56256.,
      57796.,  59176.,  60556.,  61936.,  63496.,  64880.,  66264.,  67648.};
  const std::array<int, 4> in_shape = {{3, 5, 6, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x5x6x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      24261.,  24522.,  24783.,  25044.,  25926.,  26196.,  26466.,  26736.,
      27663.,  27942.,  28221.,  28500.,  29472.,  29760.,  30048.,  30336.,
      26601.,  26898.,  27195.,  27492.,  28410.,  28716.,  29022.,  29328.,
      30291.,  30606.,  30921.,  31236.,  32244.,  32568.,  32892.,  33216.,
      28941.,  29274.,  29607.,  29940.,  30894.,  31236.,  31578.,  31920.,
      32919.,  33270.,  33621.,  33972.,  35016.,  35376.,  35736.,  36096.,
      31281.,  31650.,  32019.,  32388.,  33378.,  33756.,  34134.,  34512.,
      35547.,  35934.,  36321.,  36708.,  37788.,  38184.,  38580.,  38976.,
      38301.,  38778.,  39255.,  39732.,  40830.,  41316.,  41802.,  42288.,
      43431.,  43926.,  44421.,  44916.,  46104.,  46608.,  47112.,  47616.,
      40641.,  41154.,  41667.,  42180.,  43314.,  43836.,  44358.,  44880.,
      46059.,  46590.,  47121.,  47652.,  48876.,  49416.,  49956.,  50496.,
      42981.,  43530.,  44079.,  44628.,  45798.,  46356.,  46914.,  47472.,
      48687.,  49254.,  49821.,  50388.,  51648.,  52224.,  52800.,  53376.,
      45321.,  45906.,  46491.,  47076.,  48282.,  48876.,  49470.,  50064.,
      51315.,  51918.,  52521.,  53124.,  54420.,  55032.,  55644.,  56256.,
      52341.,  53034.,  53727.,  54420.,  55734.,  56436.,  57138.,  57840.,
      59199.,  59910.,  60621.,  61332.,  62736.,  63456.,  64176.,  64896.,
      54681.,  55410.,  56139.,  56868.,  58218.,  58956.,  59694.,  60432.,
      61827.,  62574.,  63321.,  64068.,  65508.,  66264.,  67020.,  67776.,
      57021.,  57786.,  58551.,  59316.,  60702.,  61476.,  62250.,  63024.,
      64455.,  65238.,  66021.,  66804.,  68280.,  69072.,  69864.,  70656.,
      59361.,  60162.,  60963.,  61764.,  63186.,  63996.,  64806.,  65616.,
      67083.,  67902.,  68721.,  69540.,  71052.,  71880.,  72708.,  73536.,
      94461.,  95802.,  97143.,  98484.,  100446., 101796., 103146., 104496.,
      106503., 107862., 109221., 110580., 112632., 114000., 115368., 116736.,
      96801.,  98178.,  99555.,  100932., 102930., 104316., 105702., 107088.,
      109131., 110526., 111921., 113316., 115404., 116808., 118212., 119616.,
      99141.,  100554., 101967., 103380., 105414., 106836., 108258., 109680.,
      111759., 113190., 114621., 116052., 118176., 119616., 121056., 122496.,
      101481., 102930., 104379., 105828., 107898., 109356., 110814., 112272.,
      114387., 115854., 117321., 118788., 120948., 122424., 123900., 125376.,
      108501., 110058., 111615., 113172., 115350., 116916., 118482., 120048.,
      122271., 123846., 125421., 126996., 129264., 130848., 132432., 134016.,
      110841., 112434., 114027., 115620., 117834., 119436., 121038., 122640.,
      124899., 126510., 128121., 129732., 132036., 133656., 135276., 136896.,
      113181., 114810., 116439., 118068., 120318., 121956., 123594., 125232.,
      127527., 129174., 130821., 132468., 134808., 136464., 138120., 139776.,
      115521., 117186., 118851., 120516., 122802., 124476., 126150., 127824.,
      130155., 131838., 133521., 135204., 137580., 139272., 140964., 142656.,
      122541., 124314., 126087., 127860., 130254., 132036., 133818., 135600.,
      138039., 139830., 141621., 143412., 145896., 147696., 149496., 151296.,
      124881., 126690., 128499., 130308., 132738., 134556., 136374., 138192.,
      140667., 142494., 144321., 146148., 148668., 150504., 152340., 154176.,
      127221., 129066., 130911., 132756., 135222., 137076., 138930., 140784.,
      143295., 145158., 147021., 148884., 151440., 153312., 155184., 157056.,
      129561., 131442., 133323., 135204., 137706., 139596., 141486., 143376.,
      145923., 147822., 149721., 151620., 154212., 156120., 158028., 159936.,
      164661., 167082., 169503., 171924., 174966., 177396., 179826., 182256.,
      185343., 187782., 190221., 192660., 195792., 198240., 200688., 203136.,
      167001., 169458., 171915., 174372., 177450., 179916., 182382., 184848.,
      187971., 190446., 192921., 195396., 198564., 201048., 203532., 206016.,
      169341., 171834., 174327., 176820., 179934., 182436., 184938., 187440.,
      190599., 193110., 195621., 198132., 201336., 203856., 206376., 208896.,
      171681., 174210., 176739., 179268., 182418., 184956., 187494., 190032.,
      193227., 195774., 198321., 200868., 204108., 206664., 209220., 211776.,
      178701., 181338., 183975., 186612., 189870., 192516., 195162., 197808.,
      201111., 203766., 206421., 209076., 212424., 215088., 217752., 220416.,
      181041., 183714., 186387., 189060., 192354., 195036., 197718., 200400.,
      203739., 206430., 209121., 211812., 215196., 217896., 220596., 223296.,
      183381., 186090., 188799., 191508., 194838., 197556., 200274., 202992.,
      206367., 209094., 211821., 214548., 217968., 220704., 223440., 226176.,
      185721., 188466., 191211., 193956., 197322., 200076., 202830., 205584.,
      208995., 211758., 214521., 217284., 220740., 223512., 226284., 229056.,
      192741., 195594., 198447., 201300., 204774., 207636., 210498., 213360.,
      216879., 219750., 222621., 225492., 229056., 231936., 234816., 237696.,
      195081., 197970., 200859., 203748., 207258., 210156., 213054., 215952.,
      219507., 222414., 225321., 228228., 231828., 234744., 237660., 240576.,
      197421., 200346., 203271., 206196., 209742., 212676., 215610., 218544.,
      222135., 225078., 228021., 230964., 234600., 237552., 240504., 243456.,
      199761., 202722., 205683., 208644., 212226., 215196., 218166., 221136.,
      224763., 227742., 230721., 233700., 237372., 240360., 243348., 246336.};
  const std::array<int, 4> in_shape = {{3, 5, 6, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x6x4x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      111.,  178.,  217.,  145.,  231.,  348.,  393.,  252.,  363.,
      528.,  573.,  360.,  495.,  708.,  753.,  468.,  627.,  888.,
      933.,  576.,  325.,  442.,  463.,  271.,  783.,  1114., 1153.,
      721.,  1023., 1428., 1473., 900.,  1155., 1608., 1653., 1008.,
      1287., 1788., 1833., 1116., 1419., 1968., 2013., 1224., 709.,
      946.,  967.,  559.,  1455., 2050., 2089., 1297., 1815., 2508.,
      2553., 1548., 1947., 2688., 2733., 1656., 2079., 2868., 2913.,
      1764., 2211., 3048., 3093., 1872., 1093., 1450., 1471., 847.};
  const std::array<int, 4> in_shape = {{3, 6, 4, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x6x4x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      348.,  393.,  528.,  573.,  708.,  753.,  888.,  933.,
      1428., 1473., 1608., 1653., 1788., 1833., 1968., 2013.,
      2508., 2553., 2688., 2733., 2868., 2913., 3048., 3093.};
  const std::array<int, 4> in_shape = {{3, 6, 4, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x6x4x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      208.,  222.,  332.,  356.,  404.,  434.,  268.,  290.,  429.,  462.,
      642.,  696.,  723.,  786.,  459.,  504.,  669.,  726.,  966.,  1056.,
      1047., 1146., 651.,  720.,  909.,  990.,  1290., 1416., 1371., 1506.,
      843.,  936.,  1149., 1254., 1614., 1776., 1695., 1866., 1035., 1152.,
      572.,  650.,  764.,  884.,  800.,  926.,  456.,  542.,  1456., 1566.,
      2060., 2228., 2132., 2306., 1324., 1442., 1869., 2046., 2586., 2856.,
      2667., 2946., 1611., 1800., 2109., 2310., 2910., 3216., 2991., 3306.,
      1803., 2016., 2349., 2574., 3234., 3576., 3315., 3666., 1995., 2232.,
      2589., 2838., 3558., 3936., 3639., 4026., 2187., 2448., 1244., 1418.,
      1628., 1892., 1664., 1934., 936.,  1118., 2704., 2910., 3788., 4100.,
      3860., 4178., 2380., 2594., 3309., 3630., 4530., 5016., 4611., 5106.,
      2763., 3096., 3549., 3894., 4854., 5376., 4935., 5466., 2955., 3312.,
      3789., 4158., 5178., 5736., 5259., 5826., 3147., 3528., 4029., 4422.,
      5502., 6096., 5583., 6186., 3339., 3744., 1916., 2186., 2492., 2900.,
      2528., 2942., 1416., 1694.};
  const std::array<int, 4> in_shape = {{3, 6, 4, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x6x4x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      642.,  696.,  723.,  786.,  966.,  1056., 1047., 1146., 1290., 1416.,
      1371., 1506., 1614., 1776., 1695., 1866., 2586., 2856., 2667., 2946.,
      2910., 3216., 2991., 3306., 3234., 3576., 3315., 3666., 3558., 3936.,
      3639., 4026., 4530., 5016., 4611., 5106., 4854., 5376., 4935., 5466.,
      5178., 5736., 5259., 5826., 5502., 6096., 5583., 6186.};
  const std::array<int, 4> in_shape = {{3, 6, 4, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x6x4x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      402.,   416.,   430.,   444.,   640.,   664.,   688.,   712.,   778.,
      808.,   838.,   868.,   514.,   536.,   558.,   580.,   825.,   858.,
      891.,   924.,   1230.,  1284.,  1338.,  1392.,  1383.,  1446.,  1509.,
      1572.,  873.,   918.,   963.,   1008.,  1281.,  1338.,  1395.,  1452.,
      1842.,  1932.,  2022.,  2112.,  1995.,  2094.,  2193.,  2292.,  1233.,
      1302.,  1371.,  1440.,  1737.,  1818.,  1899.,  1980.,  2454.,  2580.,
      2706.,  2832.,  2607.,  2742.,  2877.,  3012.,  1593.,  1686.,  1779.,
      1872.,  2193.,  2298.,  2403.,  2508.,  3066.,  3228.,  3390.,  3552.,
      3219.,  3390.,  3561.,  3732.,  1953.,  2070.,  2187.,  2304.,  1066.,
      1144.,  1222.,  1300.,  1408.,  1528.,  1648.,  1768.,  1474.,  1600.,
      1726.,  1852.,  826.,   912.,   998.,   1084.,  2802.,  2912.,  3022.,
      3132.,  3952.,  4120.,  4288.,  4456.,  4090.,  4264.,  4438.,  4612.,
      2530.,  2648.,  2766.,  2884.,  3561.,  3738.,  3915.,  4092.,  4902.,
      5172.,  5442.,  5712.,  5055.,  5334.,  5613.,  5892.,  3033.,  3222.,
      3411.,  3600.,  4017.,  4218.,  4419.,  4620.,  5514.,  5820.,  6126.,
      6432.,  5667.,  5982.,  6297.,  6612.,  3393.,  3606.,  3819.,  4032.,
      4473.,  4698.,  4923.,  5148.,  6126.,  6468.,  6810.,  7152.,  6279.,
      6630.,  6981.,  7332.,  3753.,  3990.,  4227.,  4464.,  4929.,  5178.,
      5427.,  5676.,  6738.,  7116.,  7494.,  7872.,  6891.,  7278.,  7665.,
      8052.,  4113.,  4374.,  4635.,  4896.,  2314.,  2488.,  2662.,  2836.,
      2992.,  3256.,  3520.,  3784.,  3058.,  3328.,  3598.,  3868.,  1690.,
      1872.,  2054.,  2236.,  5202.,  5408.,  5614.,  5820.,  7264.,  7576.,
      7888.,  8200.,  7402.,  7720.,  8038.,  8356.,  4546.,  4760.,  4974.,
      5188.,  6297.,  6618.,  6939.,  7260.,  8574.,  9060.,  9546.,  10032.,
      8727.,  9222.,  9717.,  10212., 5193.,  5526.,  5859.,  6192.,  6753.,
      7098.,  7443.,  7788.,  9186.,  9708.,  10230., 10752., 9339.,  9870.,
      10401., 10932., 5553.,  5910.,  6267.,  6624.,  7209.,  7578.,  7947.,
      8316.,  9798.,  10356., 10914., 11472., 9951.,  10518., 11085., 11652.,
      5913.,  6294.,  6675.,  7056.,  7665.,  8058.,  8451.,  8844.,  10410.,
      11004., 11598., 12192., 10563., 11166., 11769., 12372., 6273.,  6678.,
      7083.,  7488.,  3562.,  3832.,  4102.,  4372.,  4576.,  4984.,  5392.,
      5800.,  4642.,  5056.,  5470.,  5884.,  2554.,  2832.,  3110.,  3388.};
  const std::array<int, 4> in_shape = {{3, 6, 4, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x6x4x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1230.,  1284.,  1338.,  1392.,  1383.,  1446.,  1509.,  1572.,  1842.,
      1932.,  2022.,  2112.,  1995.,  2094.,  2193.,  2292.,  2454.,  2580.,
      2706.,  2832.,  2607.,  2742.,  2877.,  3012.,  3066.,  3228.,  3390.,
      3552.,  3219.,  3390.,  3561.,  3732.,  4902.,  5172.,  5442.,  5712.,
      5055.,  5334.,  5613.,  5892.,  5514.,  5820.,  6126.,  6432.,  5667.,
      5982.,  6297.,  6612.,  6126.,  6468.,  6810.,  7152.,  6279.,  6630.,
      6981.,  7332.,  6738.,  7116.,  7494.,  7872.,  6891.,  7278.,  7665.,
      8052.,  8574.,  9060.,  9546.,  10032., 8727.,  9222.,  9717.,  10212.,
      9186.,  9708.,  10230., 10752., 9339.,  9870.,  10401., 10932., 9798.,
      10356., 10914., 11472., 9951.,  10518., 11085., 11652., 10410., 11004.,
      11598., 12192., 10563., 11166., 11769., 12372.};
  const std::array<int, 4> in_shape = {{3, 6, 4, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x6x4x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      364.,   444.,   592.,  712.,  736.,   868.,   492.,   580.,   798.,
      924.,   1203.,  1392., 1365., 1572.,  870.,   1008.,  1278.,  1452.,
      1851.,  2112.,  2013., 2292., 1254.,  1440.,  1758.,  1980.,  2499.,
      2832.,  2661.,  3012., 1638., 1872.,  2238.,  2508.,  3147.,  3552.,
      3309.,  3732.,  2022., 2304., 1116.,  1300.,  1492.,  1768.,  1564.,
      1852.,  892.,   1084., 2860., 3132.,  4048.,  4456.,  4192.,  4612.,
      2604.,  2884.,  3678., 4092., 5091.,  5712.,  5253.,  5892.,  3174.,
      3600.,  4158.,  4620., 5739., 6432.,  5901.,  6612.,  3558.,  4032.,
      4638.,  5148.,  6387., 7152., 6549.,  7332.,  3942.,  4464.,  5118.,
      5676.,  7035.,  7872., 7197., 8052.,  4326.,  4896.,  2460.,  2836.,
      3220.,  3784.,  3292., 3868., 1852.,  2236.,  5356.,  5820.,  7504.,
      8200.,  7648.,  8356., 4716., 5188.,  6558.,  7260.,  8979.,  10032.,
      9141.,  10212., 5478., 6192., 7038.,  7788.,  9627.,  10752., 9789.,
      10932., 5862.,  6624., 7518., 8316.,  10275., 11472., 10437., 11652.,
      6246.,  7056.,  7998., 8844., 10923., 12192., 11085., 12372., 6630.,
      7488.,  3804.,  4372., 4948., 5800.,  5020.,  5884.,  2812.,  3388.};
  const std::array<int, 4> in_shape = {{3, 6, 4, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x6x4x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1203.,  1392.,  1365.,  1572.,  1851.,  2112.,  2013.,  2292.,
      2499.,  2832.,  2661.,  3012.,  3147.,  3552.,  3309.,  3732.,
      5091.,  5712.,  5253.,  5892.,  5739.,  6432.,  5901.,  6612.,
      6387.,  7152.,  6549.,  7332.,  7035.,  7872.,  7197.,  8052.,
      8979.,  10032., 9141.,  10212., 9627.,  10752., 9789.,  10932.,
      10275., 11472., 10437., 11652., 10923., 12192., 11085., 12372.};
  const std::array<int, 4> in_shape = {{3, 6, 4, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x6x4x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      704.,   728.,   860.,   888.,   1142.,  1184.,  1376.,  1424.,  1418.,
      1472.,  1676.,  1736.,  944.,   984.,   1116.,  1160.,  1536.,  1596.,
      1782.,  1848.,  2307.,  2406.,  2676.,  2784.,  2613.,  2730.,  3018.,
      3144.,  1656.,  1740.,  1926.,  2016.,  2448.,  2556.,  2790.,  2904.,
      3531.,  3702.,  4044.,  4224.,  3837.,  4026.,  4386.,  4584.,  2376.,
      2508.,  2742.,  2880.,  3360.,  3516.,  3798.,  3960.,  4755.,  4998.,
      5412.,  5664.,  5061.,  5322.,  5754.,  6024.,  3096.,  3276.,  3558.,
      3744.,  4272.,  4476.,  4806.,  5016.,  5979.,  6294.,  6780.,  7104.,
      6285.,  6618.,  7122.,  7464.,  3816.,  4044.,  4374.,  4608.,  2080.,
      2232.,  2444.,  2600.,  2750.,  2984.,  3296.,  3536.,  2882.,  3128.,
      3452.,  3704.,  1616.,  1784.,  1996.,  2168.,  5504.,  5720.,  6044.,
      6264.,  7766.,  8096.,  8576.,  8912.,  8042.,  8384.,  8876.,  9224.,
      4976.,  5208.,  5532.,  5768.,  7008.,  7356.,  7830.,  8184.,  9651.,
      10182., 10884., 11424., 9957.,  10506., 11226., 11784., 5976.,  6348.,
      6822.,  7200.,  7920.,  8316.,  8838.,  9240.,  10875., 11478., 12252.,
      12864., 11181., 11802., 12594., 13224., 6696.,  7116.,  7638.,  8064.,
      8832.,  9276.,  9846.,  10296., 12099., 12774., 13620., 14304., 12405.,
      13098., 13962., 14664., 7416.,  7884.,  8454.,  8928.,  9744.,  10236.,
      10854., 11352., 13323., 14070., 14988., 15744., 13629., 14394., 15330.,
      16104., 8136.,  8652.,  9270.,  9792.,  4576.,  4920.,  5324.,  5672.,
      5918.,  6440.,  7040.,  7568.,  6050.,  6584.,  7196.,  7736.,  3344.,
      3704.,  4108.,  4472.,  10304., 10712., 11228., 11640., 14390., 15008.,
      15776., 16400., 14666., 15296., 16076., 16712., 9008.,  9432.,  9948.,
      10376., 12480., 13116., 13878., 14520., 16995., 17958., 19092., 20064.,
      17301., 18282., 19434., 20424., 10296., 10956., 11718., 12384., 13392.,
      14076., 14886., 15576., 18219., 19254., 20460., 21504., 18525., 19578.,
      20802., 21864., 11016., 11724., 12534., 13248., 14304., 15036., 15894.,
      16632., 19443., 20550., 21828., 22944., 19749., 20874., 22170., 23304.,
      11736., 12492., 13350., 14112., 15216., 15996., 16902., 17688., 20667.,
      21846., 23196., 24384., 20973., 22170., 23538., 24744., 12456., 13260.,
      14166., 14976., 7072.,  7608.,  8204.,  8744.,  9086.,  9896.,  10784.,
      11600., 9218.,  10040., 10940., 11768., 5072.,  5624.,  6220.,  6776.};
  const std::array<int, 4> in_shape = {{3, 6, 4, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x6x4x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2307.,  2406.,  2676.,  2784.,  2613.,  2730.,  3018.,  3144.,  3531.,
      3702.,  4044.,  4224.,  3837.,  4026.,  4386.,  4584.,  4755.,  4998.,
      5412.,  5664.,  5061.,  5322.,  5754.,  6024.,  5979.,  6294.,  6780.,
      7104.,  6285.,  6618.,  7122.,  7464.,  9651.,  10182., 10884., 11424.,
      9957.,  10506., 11226., 11784., 10875., 11478., 12252., 12864., 11181.,
      11802., 12594., 13224., 12099., 12774., 13620., 14304., 12405., 13098.,
      13962., 14664., 13323., 14070., 14988., 15744., 13629., 14394., 15330.,
      16104., 16995., 17958., 19092., 20064., 17301., 18282., 19434., 20424.,
      18219., 19254., 20460., 21504., 18525., 19578., 20802., 21864., 19443.,
      20550., 21828., 22944., 19749., 20874., 22170., 23304., 20667., 21846.,
      23196., 24384., 20973., 22170., 23538., 24744.};
  const std::array<int, 4> in_shape = {{3, 6, 4, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x6x4x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1384.,  1408.,  1432.,  1456.,  1692.,  1720.,  1748.,  1776.,  2242.,
      2284.,  2326.,  2368.,  2704.,  2752.,  2800.,  2848.,  2782.,  2836.,
      2890.,  2944.,  3292.,  3352.,  3412.,  3472.,  1848.,  1888.,  1928.,
      1968.,  2188.,  2232.,  2276.,  2320.,  3012.,  3072.,  3132.,  3192.,
      3498.,  3564.,  3630.,  3696.,  4515.,  4614.,  4713.,  4812.,  5244.,
      5352.,  5460.,  5568.,  5109.,  5226.,  5343.,  5460.,  5910.,  6036.,
      6162.,  6288.,  3228.,  3312.,  3396.,  3480.,  3762.,  3852.,  3942.,
      4032.,  4788.,  4896.,  5004.,  5112.,  5466.,  5580.,  5694.,  5808.,
      6891.,  7062.,  7233.,  7404.,  7908.,  8088.,  8268.,  8448.,  7485.,
      7674.,  7863.,  8052.,  8574.,  8772.,  8970.,  9168.,  4620.,  4752.,
      4884.,  5016.,  5346.,  5484.,  5622.,  5760.,  6564.,  6720.,  6876.,
      7032.,  7434.,  7596.,  7758.,  7920.,  9267.,  9510.,  9753.,  9996.,
      10572., 10824., 11076., 11328., 9861.,  10122., 10383., 10644., 11238.,
      11508., 11778., 12048., 6012.,  6192.,  6372.,  6552.,  6930.,  7116.,
      7302.,  7488.,  8340.,  8544.,  8748.,  8952.,  9402.,  9612.,  9822.,
      10032., 11643., 11958., 12273., 12588., 13236., 13560., 13884., 14208.,
      12237., 12570., 12903., 13236., 13902., 14244., 14586., 14928., 7404.,
      7632.,  7860.,  8088.,  8514.,  8748.,  8982.,  9216.,  4008.,  4160.,
      4312.,  4464.,  4732.,  4888.,  5044.,  5200.,  5266.,  5500.,  5734.,
      5968.,  6352.,  6592.,  6832.,  7072.,  5518.,  5764.,  6010.,  6256.,
      6652.,  6904.,  7156.,  7408.,  3064.,  3232.,  3400.,  3568.,  3820.,
      3992.,  4164.,  4336.,  10792., 11008., 11224., 11440., 11868., 12088.,
      12308., 12528., 15202., 15532., 15862., 16192., 16816., 17152., 17488.,
      17824., 15742., 16084., 16426., 16768., 17404., 17752., 18100., 18448.,
      9720.,  9952.,  10184., 10416., 10828., 11064., 11300., 11536., 13668.,
      14016., 14364., 14712., 15306., 15660., 16014., 16368., 18771., 19302.,
      19833., 20364., 21228., 21768., 22308., 22848., 19365., 19914., 20463.,
      21012., 21894., 22452., 23010., 23568., 11580., 11952., 12324., 12696.,
      13266., 13644., 14022., 14400., 15444., 15840., 16236., 16632., 17274.,
      17676., 18078., 18480., 21147., 21750., 22353., 22956., 23892., 24504.,
      25116., 25728., 21741., 22362., 22983., 23604., 24558., 25188., 25818.,
      26448., 12972., 13392., 13812., 14232., 14850., 15276., 15702., 16128.,
      17220., 17664., 18108., 18552., 19242., 19692., 20142., 20592., 23523.,
      24198., 24873., 25548., 26556., 27240., 27924., 28608., 24117., 24810.,
      25503., 26196., 27222., 27924., 28626., 29328., 14364., 14832., 15300.,
      15768., 16434., 16908., 17382., 17856., 18996., 19488., 19980., 20472.,
      21210., 21708., 22206., 22704., 25899., 26646., 27393., 28140., 29220.,
      29976., 30732., 31488., 26493., 27258., 28023., 28788., 29886., 30660.,
      31434., 32208., 15756., 16272., 16788., 17304., 18018., 18540., 19062.,
      19584., 8808.,  9152.,  9496.,  9840.,  10300., 10648., 10996., 11344.,
      11314., 11836., 12358., 12880., 13552., 14080., 14608., 15136., 11566.,
      12100., 12634., 13168., 13852., 14392., 14932., 15472., 6328.,  6688.,
      7048.,  7408.,  7852.,  8216.,  8580.,  8944.,  20200., 20608., 21016.,
      21424., 22044., 22456., 22868., 23280., 28162., 28780., 29398., 30016.,
      30928., 31552., 32176., 32800., 28702., 29332., 29962., 30592., 31516.,
      32152., 32788., 33424., 17592., 18016., 18440., 18864., 19468., 19896.,
      20324., 20752., 24324., 24960., 25596., 26232., 27114., 27756., 28398.,
      29040., 33027., 33990., 34953., 35916., 37212., 38184., 39156., 40128.,
      33621., 34602., 35583., 36564., 37878., 38868., 39858., 40848., 19932.,
      20592., 21252., 21912., 22770., 23436., 24102., 24768., 26100., 26784.,
      27468., 28152., 29082., 29772., 30462., 31152., 35403., 36438., 37473.,
      38508., 39876., 40920., 41964., 43008., 35997., 37050., 38103., 39156.,
      40542., 41604., 42666., 43728., 21324., 22032., 22740., 23448., 24354.,
      25068., 25782., 26496., 27876., 28608., 29340., 30072., 31050., 31788.,
      32526., 33264., 37779., 38886., 39993., 41100., 42540., 43656., 44772.,
      45888., 38373., 39498., 40623., 41748., 43206., 44340., 45474., 46608.,
      22716., 23472., 24228., 24984., 25938., 26700., 27462., 28224., 29652.,
      30432., 31212., 31992., 33018., 33804., 34590., 35376., 40155., 41334.,
      42513., 43692., 45204., 46392., 47580., 48768., 40749., 41946., 43143.,
      44340., 45870., 47076., 48282., 49488., 24108., 24912., 25716., 26520.,
      27522., 28332., 29142., 29952., 13608., 14144., 14680., 15216., 15868.,
      16408., 16948., 17488., 17362., 18172., 18982., 19792., 20752., 21568.,
      22384., 23200., 17614., 18436., 19258., 20080., 21052., 21880., 22708.,
      23536., 9592.,  10144., 10696., 11248., 11884., 12440., 12996., 13552.};
  const std::array<int, 4> in_shape = {{3, 6, 4, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x6x4x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4515.,  4614.,  4713.,  4812.,  5244.,  5352.,  5460.,  5568.,  5109.,
      5226.,  5343.,  5460.,  5910.,  6036.,  6162.,  6288.,  6891.,  7062.,
      7233.,  7404.,  7908.,  8088.,  8268.,  8448.,  7485.,  7674.,  7863.,
      8052.,  8574.,  8772.,  8970.,  9168.,  9267.,  9510.,  9753.,  9996.,
      10572., 10824., 11076., 11328., 9861.,  10122., 10383., 10644., 11238.,
      11508., 11778., 12048., 11643., 11958., 12273., 12588., 13236., 13560.,
      13884., 14208., 12237., 12570., 12903., 13236., 13902., 14244., 14586.,
      14928., 18771., 19302., 19833., 20364., 21228., 21768., 22308., 22848.,
      19365., 19914., 20463., 21012., 21894., 22452., 23010., 23568., 21147.,
      21750., 22353., 22956., 23892., 24504., 25116., 25728., 21741., 22362.,
      22983., 23604., 24558., 25188., 25818., 26448., 23523., 24198., 24873.,
      25548., 26556., 27240., 27924., 28608., 24117., 24810., 25503., 26196.,
      27222., 27924., 28626., 29328., 25899., 26646., 27393., 28140., 29220.,
      29976., 30732., 31488., 26493., 27258., 28023., 28788., 29886., 30660.,
      31434., 32208., 33027., 33990., 34953., 35916., 37212., 38184., 39156.,
      40128., 33621., 34602., 35583., 36564., 37878., 38868., 39858., 40848.,
      35403., 36438., 37473., 38508., 39876., 40920., 41964., 43008., 35997.,
      37050., 38103., 39156., 40542., 41604., 42666., 43728., 37779., 38886.,
      39993., 41100., 42540., 43656., 44772., 45888., 38373., 39498., 40623.,
      41748., 43206., 44340., 45474., 46608., 40155., 41334., 42513., 43692.,
      45204., 46392., 47580., 48768., 40749., 41946., 43143., 44340., 45870.,
      47076., 48282., 49488.};
  const std::array<int, 4> in_shape = {{3, 6, 4, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x6x4x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1308.,  1456.,  1612.,  1776.,  2146.,  2368.,  2602.,  2848.,  2698.,
      2944.,  3202.,  3472.,  1804.,  1968.,  2140.,  2320.,  2958.,  3192.,
      3438.,  3696.,  4461.,  4812.,  5181.,  5568.,  5073.,  5460.,  5865.,
      6288.,  3222.,  3480.,  3750.,  4032.,  4782.,  5112.,  5454.,  5808.,
      6909.,  7404.,  7917.,  8448.,  7521.,  8052.,  8601.,  9168.,  4662.,
      5016.,  5382.,  5760.,  6606.,  7032.,  7470.,  7920.,  9357.,  9996.,
      10653., 11328., 9969.,  10644., 11337., 12048., 6102.,  6552.,  7014.,
      7488.,  8430.,  8952.,  9486.,  10032., 11805., 12588., 13389., 14208.,
      12417., 13236., 14073., 14928., 7542.,  8088.,  8646.,  9216.,  4108.,
      4464.,  4828.,  5200.,  5434.,  5968.,  6514.,  7072.,  5698.,  6256.,
      6826.,  7408.,  3196.,  3568.,  3948.,  4336.,  10908., 11440., 11980.,
      12528., 15394., 16192., 17002., 17824., 15946., 16768., 17602., 18448.,
      9868.,  10416., 10972., 11536., 13902., 14712., 15534., 16368., 19149.,
      20364., 21597., 22848., 19761., 21012., 22281., 23568., 11862., 12696.,
      13542., 14400., 15726., 16632., 17550., 18480., 21597., 22956., 24333.,
      25728., 22209., 23604., 25017., 26448., 13302., 14232., 15174., 16128.,
      17550., 18552., 19566., 20592., 24045., 25548., 27069., 28608., 24657.,
      26196., 27753., 29328., 14742., 15768., 16806., 17856., 19374., 20472.,
      21582., 22704., 26493., 28140., 29805., 31488., 27105., 28788., 30489.,
      32208., 16182., 17304., 18438., 19584., 9100.,  9840.,  10588., 11344.,
      11770., 12880., 14002., 15136., 12034., 13168., 14314., 15472., 6652.,
      7408.,  8172.,  8944.,  20508., 21424., 22348., 23280., 28642., 30016.,
      31402., 32800., 29194., 30592., 32002., 33424., 17932., 18864., 19804.,
      20752., 24846., 26232., 27630., 29040., 33837., 35916., 38013., 40128.,
      34449., 36564., 38697., 40848., 20502., 21912., 23334., 24768., 26670.,
      28152., 29646., 31152., 36285., 38508., 40749., 43008., 36897., 39156.,
      41433., 43728., 21942., 23448., 24966., 26496., 28494., 30072., 31662.,
      33264., 38733., 41100., 43485., 45888., 39345., 41748., 44169., 46608.,
      23382., 24984., 26598., 28224., 30318., 31992., 33678., 35376., 41181.,
      43692., 46221., 48768., 41793., 44340., 46905., 49488., 24822., 26520.,
      28230., 29952., 14092., 15216., 16348., 17488., 18106., 19792., 21490.,
      23200., 18370., 20080., 21802., 23536., 10108., 11248., 12396., 13552.};
  const std::array<int, 4> in_shape = {{3, 6, 4, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x6x4x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4461.,  4812.,  5181.,  5568.,  5073.,  5460.,  5865.,  6288.,  6909.,
      7404.,  7917.,  8448.,  7521.,  8052.,  8601.,  9168.,  9357.,  9996.,
      10653., 11328., 9969.,  10644., 11337., 12048., 11805., 12588., 13389.,
      14208., 12417., 13236., 14073., 14928., 19149., 20364., 21597., 22848.,
      19761., 21012., 22281., 23568., 21597., 22956., 24333., 25728., 22209.,
      23604., 25017., 26448., 24045., 25548., 27069., 28608., 24657., 26196.,
      27753., 29328., 26493., 28140., 29805., 31488., 27105., 28788., 30489.,
      32208., 33837., 35916., 38013., 40128., 34449., 36564., 38697., 40848.,
      36285., 38508., 40749., 43008., 36897., 39156., 41433., 43728., 38733.,
      41100., 43485., 45888., 39345., 41748., 44169., 46608., 41181., 43692.,
      46221., 48768., 41793., 44340., 46905., 49488.};
  const std::array<int, 4> in_shape = {{3, 6, 4, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x6x4x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2572.,  2616.,  2864.,  2912.,  3172.,  3224.,  3496.,  3552.,  4214.,
      4292.,  4652.,  4736.,  5114.,  5204.,  5600.,  5696.,  5294.,  5396.,
      5780.,  5888.,  6290.,  6404.,  6824.,  6944.,  3532.,  3608.,  3856.,
      3936.,  4196.,  4280.,  4552.,  4640.,  5802.,  5916.,  6264.,  6384.,
      6750.,  6876.,  7260.,  7392.,  8733.,  8922.,  9426.,  9624.,  10155.,
      10362., 10920., 11136., 9921.,  10146., 10686., 10920., 11487., 11730.,
      12324., 12576., 6282.,  6444.,  6792.,  6960.,  7326.,  7500.,  7884.,
      8064.,  9354.,  9564.,  10008., 10224., 10686., 10908., 11388., 11616.,
      13485., 13818., 14466., 14808., 15483., 15834., 16536., 16896., 14673.,
      15042., 15726., 16104., 16815., 17202., 17940., 18336., 9066.,  9324.,
      9768.,  10032., 10494., 10764., 11244., 11520., 12906., 13212., 13752.,
      14064., 14622., 14940., 15516., 15840., 18237., 18714., 19506., 19992.,
      20811., 21306., 22152., 22656., 19425., 19938., 20766., 21288., 22143.,
      22674., 23556., 24096., 11850., 12204., 12744., 13104., 13662., 14028.,
      14604., 14976., 16458., 16860., 17496., 17904., 18558., 18972., 19644.,
      20064., 22989., 23610., 24546., 25176., 26139., 26778., 27768., 28416.,
      24177., 24834., 25806., 26472., 27471., 28146., 29172., 29856., 14634.,
      15084., 15720., 16176., 16830., 17292., 17964., 18432., 7916.,  8216.,
      8624.,  8928.,  9348.,  9656.,  10088., 10400., 10406., 10868., 11468.,
      11936., 12554., 13028., 13664., 14144., 10910., 11396., 12020., 12512.,
      13154., 13652., 14312., 14816., 6060.,  6392.,  6800.,  7136.,  7556.,
      7896.,  8328.,  8672.,  21388., 21816., 22448., 22880., 23524., 23960.,
      24616., 25056., 30134., 30788., 31724., 32384., 33338., 34004., 34976.,
      35648., 31214., 31892., 32852., 33536., 34514., 35204., 36200., 36896.,
      19276., 19736., 20368., 20832., 21476., 21944., 22600., 23072., 27114.,
      27804., 28728., 29424., 30366., 31068., 32028., 32736., 37245., 38298.,
      39666., 40728., 42123., 43194., 44616., 45696., 38433., 39522., 40926.,
      42024., 43455., 44562., 46020., 47136., 22986., 23724., 24648., 25392.,
      26334., 27084., 28044., 28800., 30666., 31452., 32472., 33264., 34302.,
      35100., 36156., 36960., 41997., 43194., 44706., 45912., 47451., 48666.,
      50232., 51456., 43185., 44418., 45966., 47208., 48783., 50034., 51636.,
      52896., 25770., 26604., 27624., 28464., 29502., 30348., 31404., 32256.,
      34218., 35100., 36216., 37104., 38238., 39132., 40284., 41184., 46749.,
      48090., 49746., 51096., 52779., 54138., 55848., 57216., 47937., 49314.,
      51006., 52392., 54111., 55506., 57252., 58656., 28554., 29484., 30600.,
      31536., 32670., 33612., 34764., 35712., 37770., 38748., 39960., 40944.,
      42174., 43164., 44412., 45408., 51501., 52986., 54786., 56280., 58107.,
      59610., 61464., 62976., 52689., 54210., 56046., 57576., 59439., 60978.,
      62868., 64416., 31338., 32364., 33576., 34608., 35838., 36876., 38124.,
      39168., 17516., 18200., 18992., 19680., 20484., 21176., 21992., 22688.,
      22502., 23540., 24716., 25760., 26954., 28004., 29216., 30272., 23006.,
      24068., 25268., 26336., 27554., 28628., 29864., 30944., 12588., 13304.,
      14096., 14816., 15620., 16344., 17160., 17888., 40204., 41016., 42032.,
      42848., 43876., 44696., 45736., 46560., 56054., 57284., 58796., 60032.,
      61562., 62804., 64352., 65600., 57134., 58388., 59924., 61184., 62738.,
      64004., 65576., 66848., 35020., 35864., 36880., 37728., 38756., 39608.,
      40648., 41504., 48426., 49692., 51192., 52464., 53982., 55260., 56796.,
      58080., 65757., 67674., 69906., 71832., 74091., 76026., 78312., 80256.,
      66945., 68898., 71166., 73128., 75423., 77394., 79716., 81696., 39690.,
      41004., 42504., 43824., 45342., 46668., 48204., 49536., 51978., 53340.,
      54936., 56304., 57918., 59292., 60924., 62304., 70509., 72570., 74946.,
      77016., 79419., 81498., 83928., 86016., 71697., 73794., 76206., 78312.,
      80751., 82866., 85332., 87456., 42474., 43884., 45480., 46896., 48510.,
      49932., 51564., 52992., 55530., 56988., 58680., 60144., 61854., 63324.,
      65052., 66528., 75261., 77466., 79986., 82200., 84747., 86970., 89544.,
      91776., 76449., 78690., 81246., 83496., 86079., 88338., 90948., 93216.,
      45258., 46764., 48456., 49968., 51678., 53196., 54924., 56448., 59082.,
      60636., 62424., 63984., 65790., 67356., 69180., 70752., 80013., 82362.,
      85026., 87384., 90075., 92442., 95160., 97536., 81201., 83586., 86286.,
      88680., 91407., 93810., 96564., 98976., 48042., 49644., 51432., 53040.,
      54846., 56460., 58284., 59904., 27116., 28184., 29360., 30432., 31620.,
      32696., 33896., 34976., 34598., 36212., 37964., 39584., 41354., 42980.,
      44768., 46400., 35102., 36740., 38516., 40160., 41954., 43604., 45416.,
      47072., 19116., 20216., 21392., 22496., 23684., 24792., 25992., 27104.};
  const std::array<int, 4> in_shape = {{3, 6, 4, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x6x4x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      8733.,  8922.,  9426.,  9624.,  10155., 10362., 10920., 11136., 9921.,
      10146., 10686., 10920., 11487., 11730., 12324., 12576., 13485., 13818.,
      14466., 14808., 15483., 15834., 16536., 16896., 14673., 15042., 15726.,
      16104., 16815., 17202., 17940., 18336., 18237., 18714., 19506., 19992.,
      20811., 21306., 22152., 22656., 19425., 19938., 20766., 21288., 22143.,
      22674., 23556., 24096., 22989., 23610., 24546., 25176., 26139., 26778.,
      27768., 28416., 24177., 24834., 25806., 26472., 27471., 28146., 29172.,
      29856., 37245., 38298., 39666., 40728., 42123., 43194., 44616., 45696.,
      38433., 39522., 40926., 42024., 43455., 44562., 46020., 47136., 41997.,
      43194., 44706., 45912., 47451., 48666., 50232., 51456., 43185., 44418.,
      45966., 47208., 48783., 50034., 51636., 52896., 46749., 48090., 49746.,
      51096., 52779., 54138., 55848., 57216., 47937., 49314., 51006., 52392.,
      54111., 55506., 57252., 58656., 51501., 52986., 54786., 56280., 58107.,
      59610., 61464., 62976., 52689., 54210., 56046., 57576., 59439., 60978.,
      62868., 64416., 65757., 67674., 69906., 71832., 74091., 76026., 78312.,
      80256., 66945., 68898., 71166., 73128., 75423., 77394., 79716., 81696.,
      70509., 72570., 74946., 77016., 79419., 81498., 83928., 86016., 71697.,
      73794., 76206., 78312., 80751., 82866., 85332., 87456., 75261., 77466.,
      79986., 82200., 84747., 86970., 89544., 91776., 76449., 78690., 81246.,
      83496., 86079., 88338., 90948., 93216., 80013., 82362., 85026., 87384.,
      90075., 92442., 95160., 97536., 81201., 83586., 86286., 88680., 91407.,
      93810., 96564., 98976.};
  const std::array<int, 4> in_shape = {{3, 6, 4, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x6x4x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5100.,   5144.,   5188.,   5232.,   5680.,   5728.,   5776.,   5824.,
      6292.,   6344.,   6396.,   6448.,   6936.,   6992.,   7048.,   7104.,
      8350.,   8428.,   8506.,   8584.,   9220.,   9304.,   9388.,   9472.,
      10138.,  10228.,  10318.,  10408.,  11104.,  11200.,  11296.,  11392.,
      10486.,  10588.,  10690.,  10792.,  11452.,  11560.,  11668.,  11776.,
      12466.,  12580.,  12694.,  12808.,  13528.,  13648.,  13768.,  13888.,
      6988.,   7064.,   7140.,   7216.,   7632.,   7712.,   7792.,   7872.,
      8308.,   8392.,   8476.,   8560.,   9016.,   9104.,   9192.,   9280.,
      11490.,  11604.,  11718.,  11832.,  12408.,  12528.,  12648.,  12768.,
      13374.,  13500.,  13626.,  13752.,  14388.,  14520.,  14652.,  14784.,
      17277.,  17466.,  17655.,  17844.,  18654.,  18852.,  19050.,  19248.,
      20103.,  20310.,  20517.,  20724.,  21624.,  21840.,  22056.,  22272.,
      19617.,  19842.,  20067.,  20292.,  21138.,  21372.,  21606.,  21840.,
      22731.,  22974.,  23217.,  23460.,  24396.,  24648.,  24900.,  25152.,
      12402.,  12564.,  12726.,  12888.,  13416.,  13584.,  13752.,  13920.,
      14478.,  14652.,  14826.,  15000.,  15588.,  15768.,  15948.,  16128.,
      18498.,  18708.,  18918.,  19128.,  19800.,  20016.,  20232.,  20448.,
      21150.,  21372.,  21594.,  21816.,  22548.,  22776.,  23004.,  23232.,
      26637.,  26970.,  27303.,  27636.,  28590.,  28932.,  29274.,  29616.,
      30615.,  30966.,  31317.,  31668.,  32712.,  33072.,  33432.,  33792.,
      28977.,  29346.,  29715.,  30084.,  31074.,  31452.,  31830.,  32208.,
      33243.,  33630.,  34017.,  34404.,  35484.,  35880.,  36276.,  36672.,
      17874.,  18132.,  18390.,  18648.,  19272.,  19536.,  19800.,  20064.,
      20718.,  20988.,  21258.,  21528.,  22212.,  22488.,  22764.,  23040.,
      25506.,  25812.,  26118.,  26424.,  27192.,  27504.,  27816.,  28128.,
      28926.,  29244.,  29562.,  29880.,  30708.,  31032.,  31356.,  31680.,
      35997.,  36474.,  36951.,  37428.,  38526.,  39012.,  39498.,  39984.,
      41127.,  41622.,  42117.,  42612.,  43800.,  44304.,  44808.,  45312.,
      38337.,  38850.,  39363.,  39876.,  41010.,  41532.,  42054.,  42576.,
      43755.,  44286.,  44817.,  45348.,  46572.,  47112.,  47652.,  48192.,
      23346.,  23700.,  24054.,  24408.,  25128.,  25488.,  25848.,  26208.,
      26958.,  27324.,  27690.,  28056.,  28836.,  29208.,  29580.,  29952.,
      32514.,  32916.,  33318.,  33720.,  34584.,  34992.,  35400.,  35808.,
      36702.,  37116.,  37530.,  37944.,  38868.,  39288.,  39708.,  40128.,
      45357.,  45978.,  46599.,  47220.,  48462.,  49092.,  49722.,  50352.,
      51639.,  52278.,  52917.,  53556.,  54888.,  55536.,  56184.,  56832.,
      47697.,  48354.,  49011.,  49668.,  50946.,  51612.,  52278.,  52944.,
      54267.,  54942.,  55617.,  56292.,  57660.,  58344.,  59028.,  59712.,
      28818.,  29268.,  29718.,  30168.,  30984.,  31440.,  31896.,  32352.,
      33198.,  33660.,  34122.,  34584.,  35460.,  35928.,  36396.,  36864.,
      15532.,  15832.,  16132.,  16432.,  16944.,  17248.,  17552.,  17856.,
      18388.,  18696.,  19004.,  19312.,  19864.,  20176.,  20488.,  20800.,
      20350.,  20812.,  21274.,  21736.,  22468.,  22936.,  23404.,  23872.,
      24634.,  25108.,  25582.,  26056.,  26848.,  27328.,  27808.,  28288.,
      21334.,  21820.,  22306.,  22792.,  23548.,  24040.,  24532.,  25024.,
      25810.,  26308.,  26806.,  27304.,  28120.,  28624.,  29128.,  29632.,
      11788.,  12120.,  12452.,  12784.,  13264.,  13600.,  13936.,  14272.,
      14772.,  15112.,  15452.,  15792.,  16312.,  16656.,  17000.,  17344.,
      42348.,  42776.,  43204.,  43632.,  44464.,  44896.,  45328.,  45760.,
      46612.,  47048.,  47484.,  47920.,  48792.,  49232.,  49672.,  50112.,
      59614.,  60268.,  60922.,  61576.,  62788.,  63448.,  64108.,  64768.,
      66010.,  66676.,  67342.,  68008.,  69280.,  69952.,  70624.,  71296.,
      61750.,  62428.,  63106.,  63784.,  65020.,  65704.,  66388.,  67072.,
      68338.,  69028.,  69718.,  70408.,  71704.,  72400.,  73096.,  73792.,
      38092.,  38552.,  39012.,  39472.,  40272.,  40736.,  41200.,  41664.,
      42484.,  42952.,  43420.,  43888.,  44728.,  45200.,  45672.,  46144.,
      53538.,  54228.,  54918.,  55608.,  56760.,  57456.,  58152.,  58848.,
      60030.,  60732.,  61434.,  62136.,  63348.,  64056.,  64764.,  65472.,
      73437.,  74490.,  75543.,  76596.,  78270.,  79332.,  80394.,  81456.,
      83175.,  84246.,  85317.,  86388.,  88152.,  89232.,  90312.,  91392.,
      75777.,  76866.,  77955.,  79044.,  80754.,  81852.,  82950.,  84048.,
      85803.,  86910.,  88017.,  89124.,  90924.,  92040.,  93156.,  94272.,
      45234.,  45972.,  46710.,  47448.,  48552.,  49296.,  50040.,  50784.,
      51918.,  52668.,  53418.,  54168.,  55332.,  56088.,  56844.,  57600.,
      60546.,  61332.,  62118.,  62904.,  64152.,  64944.,  65736.,  66528.,
      67806.,  68604.,  69402.,  70200.,  71508.,  72312.,  73116.,  73920.,
      82797.,  83994.,  85191.,  86388.,  88206.,  89412.,  90618.,  91824.,
      93687.,  94902.,  96117.,  97332.,  99240.,  100464., 101688., 102912.,
      85137.,  86370.,  87603.,  88836.,  90690.,  91932.,  93174.,  94416.,
      96315.,  97566.,  98817.,  100068., 102012., 103272., 104532., 105792.,
      50706.,  51540.,  52374.,  53208.,  54408.,  55248.,  56088.,  56928.,
      58158.,  59004.,  59850.,  60696.,  61956.,  62808.,  63660.,  64512.,
      67554.,  68436.,  69318.,  70200.,  71544.,  72432.,  73320.,  74208.,
      75582.,  76476.,  77370.,  78264.,  79668.,  80568.,  81468.,  82368.,
      92157.,  93498.,  94839.,  96180.,  98142.,  99492.,  100842., 102192.,
      104199., 105558., 106917., 108276., 110328., 111696., 113064., 114432.,
      94497.,  95874.,  97251.,  98628.,  100626., 102012., 103398., 104784.,
      106827., 108222., 109617., 111012., 113100., 114504., 115908., 117312.,
      56178.,  57108.,  58038.,  58968.,  60264.,  61200.,  62136.,  63072.,
      64398.,  65340.,  66282.,  67224.,  68580.,  69528.,  70476.,  71424.,
      74562.,  75540.,  76518.,  77496.,  78936.,  79920.,  80904.,  81888.,
      83358.,  84348.,  85338.,  86328.,  87828.,  88824.,  89820.,  90816.,
      101517., 103002., 104487., 105972., 108078., 109572., 111066., 112560.,
      114711., 116214., 117717., 119220., 121416., 122928., 124440., 125952.,
      103857., 105378., 106899., 108420., 110562., 112092., 113622., 115152.,
      117339., 118878., 120417., 121956., 124188., 125736., 127284., 128832.,
      61650.,  62676.,  63702.,  64728.,  66120.,  67152.,  68184.,  69216.,
      70638.,  71676.,  72714.,  73752.,  75204.,  76248.,  77292.,  78336.,
      34348.,  35032.,  35716.,  36400.,  37296.,  37984.,  38672.,  39360.,
      40276.,  40968.,  41660.,  42352.,  43288.,  43984.,  44680.,  45376.,
      43966.,  45004.,  46042.,  47080.,  48388.,  49432.,  50476.,  51520.,
      52858.,  53908.,  54958.,  56008.,  57376.,  58432.,  59488.,  60544.,
      44950.,  46012.,  47074.,  48136.,  49468.,  50536.,  51604.,  52672.,
      54034.,  55108.,  56182.,  57256.,  58648.,  59728.,  60808.,  61888.,
      24460.,  25176.,  25892.,  26608.,  27472.,  28192.,  28912.,  29632.,
      30516.,  31240.,  31964.,  32688.,  33592.,  34320.,  35048.,  35776.,
      79596.,  80408.,  81220.,  82032.,  83248.,  84064.,  84880.,  85696.,
      86932.,  87752.,  88572.,  89392.,  90648.,  91472.,  92296.,  93120.,
      110878., 112108., 113338., 114568., 116356., 117592., 118828., 120064.,
      121882., 123124., 124366., 125608., 127456., 128704., 129952., 131200.,
      113014., 114268., 115522., 116776., 118588., 119848., 121108., 122368.,
      124210., 125476., 126742., 128008., 129880., 131152., 132424., 133696.,
      69196.,  70040.,  70884.,  71728.,  72912.,  73760.,  74608.,  75456.,
      76660.,  77512.,  78364.,  79216.,  80440.,  81296.,  82152.,  83008.,
      95586.,  96852.,  98118.,  99384.,  101112., 102384., 103656., 104928.,
      106686., 107964., 109242., 110520., 112308., 113592., 114876., 116160.,
      129597., 131514., 133431., 135348., 137886., 139812., 141738., 143664.,
      146247., 148182., 150117., 152052., 154680., 156624., 158568., 160512.,
      131937., 133890., 135843., 137796., 140370., 142332., 144294., 146256.,
      148875., 150846., 152817., 154788., 157452., 159432., 161412., 163392.,
      78066.,  79380.,  80694.,  82008.,  83688.,  85008.,  86328.,  87648.,
      89358.,  90684.,  92010.,  93336.,  95076.,  96408.,  97740.,  99072.,
      102594., 103956., 105318., 106680., 108504., 109872., 111240., 112608.,
      114462., 115836., 117210., 118584., 120468., 121848., 123228., 124608.,
      138957., 141018., 143079., 145140., 147822., 149892., 151962., 154032.,
      156759., 158838., 160917., 162996., 165768., 167856., 169944., 172032.,
      141297., 143394., 145491., 147588., 150306., 152412., 154518., 156624.,
      159387., 161502., 163617., 165732., 168540., 170664., 172788., 174912.,
      83538.,  84948.,  86358.,  87768.,  89544.,  90960.,  92376.,  93792.,
      95598.,  97020.,  98442.,  99864.,  101700., 103128., 104556., 105984.,
      109602., 111060., 112518., 113976., 115896., 117360., 118824., 120288.,
      122238., 123708., 125178., 126648., 128628., 130104., 131580., 133056.,
      148317., 150522., 152727., 154932., 157758., 159972., 162186., 164400.,
      167271., 169494., 171717., 173940., 176856., 179088., 181320., 183552.,
      150657., 152898., 155139., 157380., 160242., 162492., 164742., 166992.,
      169899., 172158., 174417., 176676., 179628., 181896., 184164., 186432.,
      89010.,  90516.,  92022.,  93528.,  95400.,  96912.,  98424.,  99936.,
      101838., 103356., 104874., 106392., 108324., 109848., 111372., 112896.,
      116610., 118164., 119718., 121272., 123288., 124848., 126408., 127968.,
      130014., 131580., 133146., 134712., 136788., 138360., 139932., 141504.,
      157677., 160026., 162375., 164724., 167694., 170052., 172410., 174768.,
      177783., 180150., 182517., 184884., 187944., 190320., 192696., 195072.,
      160017., 162402., 164787., 167172., 170178., 172572., 174966., 177360.,
      180411., 182814., 185217., 187620., 190716., 193128., 195540., 197952.,
      94482.,  96084.,  97686.,  99288.,  101256., 102864., 104472., 106080.,
      108078., 109692., 111306., 112920., 114948., 116568., 118188., 119808.,
      53164.,  54232.,  55300.,  56368.,  57648.,  58720.,  59792.,  60864.,
      62164.,  63240.,  64316.,  65392.,  66712.,  67792.,  68872.,  69952.,
      67582.,  69196.,  70810.,  72424.,  74308.,  75928.,  77548.,  79168.,
      81082.,  82708.,  84334.,  85960.,  87904.,  89536.,  91168.,  92800.,
      68566.,  70204.,  71842.,  73480.,  75388.,  77032.,  78676.,  80320.,
      82258.,  83908.,  85558.,  87208.,  89176.,  90832.,  92488.,  94144.,
      37132.,  38232.,  39332.,  40432.,  41680.,  42784.,  43888.,  44992.,
      46260.,  47368.,  48476.,  49584.,  50872.,  51984.,  53096.,  54208.};
  const std::array<int, 4> in_shape = {{3, 6, 4, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x6x4x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      17277.,  17466.,  17655.,  17844.,  18654.,  18852.,  19050.,  19248.,
      20103.,  20310.,  20517.,  20724.,  21624.,  21840.,  22056.,  22272.,
      19617.,  19842.,  20067.,  20292.,  21138.,  21372.,  21606.,  21840.,
      22731.,  22974.,  23217.,  23460.,  24396.,  24648.,  24900.,  25152.,
      26637.,  26970.,  27303.,  27636.,  28590.,  28932.,  29274.,  29616.,
      30615.,  30966.,  31317.,  31668.,  32712.,  33072.,  33432.,  33792.,
      28977.,  29346.,  29715.,  30084.,  31074.,  31452.,  31830.,  32208.,
      33243.,  33630.,  34017.,  34404.,  35484.,  35880.,  36276.,  36672.,
      35997.,  36474.,  36951.,  37428.,  38526.,  39012.,  39498.,  39984.,
      41127.,  41622.,  42117.,  42612.,  43800.,  44304.,  44808.,  45312.,
      38337.,  38850.,  39363.,  39876.,  41010.,  41532.,  42054.,  42576.,
      43755.,  44286.,  44817.,  45348.,  46572.,  47112.,  47652.,  48192.,
      45357.,  45978.,  46599.,  47220.,  48462.,  49092.,  49722.,  50352.,
      51639.,  52278.,  52917.,  53556.,  54888.,  55536.,  56184.,  56832.,
      47697.,  48354.,  49011.,  49668.,  50946.,  51612.,  52278.,  52944.,
      54267.,  54942.,  55617.,  56292.,  57660.,  58344.,  59028.,  59712.,
      73437.,  74490.,  75543.,  76596.,  78270.,  79332.,  80394.,  81456.,
      83175.,  84246.,  85317.,  86388.,  88152.,  89232.,  90312.,  91392.,
      75777.,  76866.,  77955.,  79044.,  80754.,  81852.,  82950.,  84048.,
      85803.,  86910.,  88017.,  89124.,  90924.,  92040.,  93156.,  94272.,
      82797.,  83994.,  85191.,  86388.,  88206.,  89412.,  90618.,  91824.,
      93687.,  94902.,  96117.,  97332.,  99240.,  100464., 101688., 102912.,
      85137.,  86370.,  87603.,  88836.,  90690.,  91932.,  93174.,  94416.,
      96315.,  97566.,  98817.,  100068., 102012., 103272., 104532., 105792.,
      92157.,  93498.,  94839.,  96180.,  98142.,  99492.,  100842., 102192.,
      104199., 105558., 106917., 108276., 110328., 111696., 113064., 114432.,
      94497.,  95874.,  97251.,  98628.,  100626., 102012., 103398., 104784.,
      106827., 108222., 109617., 111012., 113100., 114504., 115908., 117312.,
      101517., 103002., 104487., 105972., 108078., 109572., 111066., 112560.,
      114711., 116214., 117717., 119220., 121416., 122928., 124440., 125952.,
      103857., 105378., 106899., 108420., 110562., 112092., 113622., 115152.,
      117339., 118878., 120417., 121956., 124188., 125736., 127284., 128832.,
      129597., 131514., 133431., 135348., 137886., 139812., 141738., 143664.,
      146247., 148182., 150117., 152052., 154680., 156624., 158568., 160512.,
      131937., 133890., 135843., 137796., 140370., 142332., 144294., 146256.,
      148875., 150846., 152817., 154788., 157452., 159432., 161412., 163392.,
      138957., 141018., 143079., 145140., 147822., 149892., 151962., 154032.,
      156759., 158838., 160917., 162996., 165768., 167856., 169944., 172032.,
      141297., 143394., 145491., 147588., 150306., 152412., 154518., 156624.,
      159387., 161502., 163617., 165732., 168540., 170664., 172788., 174912.,
      148317., 150522., 152727., 154932., 157758., 159972., 162186., 164400.,
      167271., 169494., 171717., 173940., 176856., 179088., 181320., 183552.,
      150657., 152898., 155139., 157380., 160242., 162492., 164742., 166992.,
      169899., 172158., 174417., 176676., 179628., 181896., 184164., 186432.,
      157677., 160026., 162375., 164724., 167694., 170052., 172410., 174768.,
      177783., 180150., 182517., 184884., 187944., 190320., 192696., 195072.,
      160017., 162402., 164787., 167172., 170178., 172572., 174966., 177360.,
      180411., 182814., 185217., 187620., 190716., 193128., 195540., 197952.};
  const std::array<int, 4> in_shape = {{3, 6, 4, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x6x5x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      128.,  202.,  241.,  280.,  184.,  276.,  411.,  456.,  501.,  318.,
      441.,  636.,  681.,  726.,  453.,  606.,  861.,  906.,  951.,  588.,
      771.,  1086., 1131., 1176., 723.,  400.,  541.,  562.,  583.,  340.,
      968.,  1372., 1411., 1450., 904.,  1266., 1761., 1806., 1851., 1128.,
      1431., 1986., 2031., 2076., 1263., 1596., 2211., 2256., 2301., 1398.,
      1761., 2436., 2481., 2526., 1533., 880.,  1171., 1192., 1213., 700.,
      1808., 2542., 2581., 2620., 1624., 2256., 3111., 3156., 3201., 1938.,
      2421., 3336., 3381., 3426., 2073., 2586., 3561., 3606., 3651., 2208.,
      2751., 3786., 3831., 3876., 2343., 1360., 1801., 1822., 1843., 1060.};
  const std::array<int, 4> in_shape = {{3, 6, 5, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x6x5x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      411.,  456.,  501.,  636.,  681.,  726.,  861.,  906.,  951.,
      1086., 1131., 1176., 1761., 1806., 1851., 1986., 2031., 2076.,
      2211., 2256., 2301., 2436., 2481., 2526., 3111., 3156., 3201.,
      3336., 3381., 3426., 3561., 3606., 3651., 3786., 3831., 3876.};
  const std::array<int, 4> in_shape = {{3, 6, 5, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x6x5x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      240.,  256.,  377.,  404.,  449.,  482.,  521.,  560.,  340.,  368.,
      513.,  552.,  759.,  822.,  840.,  912.,  921.,  1002., 579.,  636.,
      813.,  882.,  1164., 1272., 1245., 1362., 1326., 1452., 819.,  906.,
      1113., 1212., 1569., 1722., 1650., 1812., 1731., 1902., 1059., 1176.,
      1413., 1542., 1974., 2172., 2055., 2262., 2136., 2352., 1299., 1446.,
      704.,  800.,  935.,  1082., 971.,  1124., 1007., 1166., 572.,  680.,
      1800., 1936., 2537., 2744., 2609., 2822., 2681., 2900., 1660., 1808.,
      2313., 2532., 3189., 3522., 3270., 3612., 3351., 3702., 2019., 2256.,
      2613., 2862., 3594., 3972., 3675., 4062., 3756., 4152., 2259., 2526.,
      2913., 3192., 3999., 4422., 4080., 4512., 4161., 4602., 2499., 2796.,
      3213., 3522., 4404., 4872., 4485., 4962., 4566., 5052., 2739., 3066.,
      1544., 1760., 2015., 2342., 2051., 2384., 2087., 2426., 1172., 1400.,
      3360., 3616., 4697., 5084., 4769., 5162., 4841., 5240., 2980., 3248.,
      4113., 4512., 5619., 6222., 5700., 6312., 5781., 6402., 3459., 3876.,
      4413., 4842., 6024., 6672., 6105., 6762., 6186., 6852., 3699., 4146.,
      4713., 5172., 6429., 7122., 6510., 7212., 6591., 7302., 3939., 4416.,
      5013., 5502., 6834., 7572., 6915., 7662., 6996., 7752., 4179., 4686.,
      2384., 2720., 3095., 3602., 3131., 3644., 3167., 3686., 1772., 2120.};
  const std::array<int, 4> in_shape = {{3, 6, 5, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x6x5x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      759.,  822.,  840.,  912.,  921.,  1002., 1164., 1272., 1245.,
      1362., 1326., 1452., 1569., 1722., 1650., 1812., 1731., 1902.,
      1974., 2172., 2055., 2262., 2136., 2352., 3189., 3522., 3270.,
      3612., 3351., 3702., 3594., 3972., 3675., 4062., 3756., 4152.,
      3999., 4422., 4080., 4512., 4161., 4602., 4404., 4872., 4485.,
      4962., 4566., 5052., 5619., 6222., 5700., 6312., 5781., 6402.,
      6024., 6672., 6105., 6762., 6186., 6852., 6429., 7122., 6510.,
      7212., 6591., 7302., 6834., 7572., 6915., 7662., 6996., 7752.};
  const std::array<int, 4> in_shape = {{3, 6, 5, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x6x5x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      464.,   480.,   496.,   512.,   727.,   754.,   781.,   808.,   865.,
      898.,   931.,   964.,   1003.,  1042.,  1081.,  1120.,  652.,   680.,
      708.,   736.,   987.,   1026.,  1065.,  1104.,  1455.,  1518.,  1581.,
      1644.,  1608.,  1680.,  1752.,  1824.,  1761.,  1842.,  1923.,  2004.,
      1101.,  1158.,  1215.,  1272.,  1557.,  1626.,  1695.,  1764.,  2220.,
      2328.,  2436.,  2544.,  2373.,  2490.,  2607.,  2724.,  2526.,  2652.,
      2778.,  2904.,  1551.,  1638.,  1725.,  1812.,  2127.,  2226.,  2325.,
      2424.,  2985.,  3138.,  3291.,  3444.,  3138.,  3300.,  3462.,  3624.,
      3291.,  3462.,  3633.,  3804.,  2001.,  2118.,  2235.,  2352.,  2697.,
      2826.,  2955.,  3084.,  3750.,  3948.,  4146.,  4344.,  3903.,  4110.,
      4317.,  4524.,  4056.,  4272.,  4488.,  4704.,  2451.,  2598.,  2745.,
      2892.,  1312.,  1408.,  1504.,  1600.,  1723.,  1870.,  2017.,  2164.,
      1789.,  1942.,  2095.,  2248.,  1855.,  2014.,  2173.,  2332.,  1036.,
      1144.,  1252.,  1360.,  3464.,  3600.,  3736.,  3872.,  4867.,  5074.,
      5281.,  5488.,  5005.,  5218.,  5431.,  5644.,  5143.,  5362.,  5581.,
      5800.,  3172.,  3320.,  3468.,  3616.,  4407.,  4626.,  4845.,  5064.,
      6045.,  6378.,  6711.,  7044.,  6198.,  6540.,  6882.,  7224.,  6351.,
      6702.,  7053.,  7404.,  3801.,  4038.,  4275.,  4512.,  4977.,  5226.,
      5475.,  5724.,  6810.,  7188.,  7566.,  7944.,  6963.,  7350.,  7737.,
      8124.,  7116.,  7512.,  7908.,  8304.,  4251.,  4518.,  4785.,  5052.,
      5547.,  5826.,  6105.,  6384.,  7575.,  7998.,  8421.,  8844.,  7728.,
      8160.,  8592.,  9024.,  7881.,  8322.,  8763.,  9204.,  4701.,  4998.,
      5295.,  5592.,  6117.,  6426.,  6735.,  7044.,  8340.,  8808.,  9276.,
      9744.,  8493.,  8970.,  9447.,  9924.,  8646.,  9132.,  9618.,  10104.,
      5151.,  5478.,  5805.,  6132.,  2872.,  3088.,  3304.,  3520.,  3703.,
      4030.,  4357.,  4684.,  3769.,  4102.,  4435.,  4768.,  3835.,  4174.,
      4513.,  4852.,  2116.,  2344.,  2572.,  2800.,  6464.,  6720.,  6976.,
      7232.,  9007.,  9394.,  9781.,  10168., 9145.,  9538.,  9931.,  10324.,
      9283.,  9682.,  10081., 10480., 5692.,  5960.,  6228.,  6496.,  7827.,
      8226.,  8625.,  9024.,  10635., 11238., 11841., 12444., 10788., 11400.,
      12012., 12624., 10941., 11562., 12183., 12804., 6501.,  6918.,  7335.,
      7752.,  8397.,  8826.,  9255.,  9684.,  11400., 12048., 12696., 13344.,
      11553., 12210., 12867., 13524., 11706., 12372., 13038., 13704., 6951.,
      7398.,  7845.,  8292.,  8967.,  9426.,  9885.,  10344., 12165., 12858.,
      13551., 14244., 12318., 13020., 13722., 14424., 12471., 13182., 13893.,
      14604., 7401.,  7878.,  8355.,  8832.,  9537.,  10026., 10515., 11004.,
      12930., 13668., 14406., 15144., 13083., 13830., 14577., 15324., 13236.,
      13992., 14748., 15504., 7851.,  8358.,  8865.,  9372.,  4432.,  4768.,
      5104.,  5440.,  5683.,  6190.,  6697.,  7204.,  5749.,  6262.,  6775.,
      7288.,  5815.,  6334.,  6853.,  7372.,  3196.,  3544.,  3892.,  4240.};
  const std::array<int, 4> in_shape = {{3, 6, 5, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x6x5x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1455.,  1518.,  1581.,  1644.,  1608.,  1680.,  1752.,  1824.,  1761.,
      1842.,  1923.,  2004.,  2220.,  2328.,  2436.,  2544.,  2373.,  2490.,
      2607.,  2724.,  2526.,  2652.,  2778.,  2904.,  2985.,  3138.,  3291.,
      3444.,  3138.,  3300.,  3462.,  3624.,  3291.,  3462.,  3633.,  3804.,
      3750.,  3948.,  4146.,  4344.,  3903.,  4110.,  4317.,  4524.,  4056.,
      4272.,  4488.,  4704.,  6045.,  6378.,  6711.,  7044.,  6198.,  6540.,
      6882.,  7224.,  6351.,  6702.,  7053.,  7404.,  6810.,  7188.,  7566.,
      7944.,  6963.,  7350.,  7737.,  8124.,  7116.,  7512.,  7908.,  8304.,
      7575.,  7998.,  8421.,  8844.,  7728.,  8160.,  8592.,  9024.,  7881.,
      8322.,  8763.,  9204.,  8340.,  8808.,  9276.,  9744.,  8493.,  8970.,
      9447.,  9924.,  8646.,  9132.,  9618.,  10104., 10635., 11238., 11841.,
      12444., 10788., 11400., 12012., 12624., 10941., 11562., 12183., 12804.,
      11400., 12048., 12696., 13344., 11553., 12210., 12867., 13524., 11706.,
      12372., 13038., 13704., 12165., 12858., 13551., 14244., 12318., 13020.,
      13722., 14424., 12471., 13182., 13893., 14604., 12930., 13668., 14406.,
      15144., 13083., 13830., 14577., 15324., 13236., 13992., 14748., 15504.};
  const std::array<int, 4> in_shape = {{3, 6, 5, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x6x5x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      428.,   512.,   682.,   808.,   826.,   964.,   970.,   1120.,  636.,
      736.,   966.,   1104.,  1437.,  1644.,  1599.,  1824.,  1761.,  2004.,
      1110.,  1272.,  1566.,  1764.,  2247.,  2544.,  2409.,  2724.,  2571.,
      2904.,  1590.,  1812.,  2166.,  2424.,  3057.,  3444.,  3219.,  3624.,
      3381.,  3804.,  2070.,  2352.,  2766.,  3084.,  3867.,  4344.,  4029.,
      4524.,  4191.,  4704.,  2550.,  2892.,  1380.,  1600.,  1834.,  2164.,
      1906.,  2248.,  1978.,  2332.,  1124.,  1360.,  3548.,  3872.,  5002.,
      5488.,  5146.,  5644.,  5290.,  5800.,  3276.,  3616.,  4566.,  5064.,
      6297.,  7044.,  6459.,  7224.,  6621.,  7404.,  3990.,  4512.,  5166.,
      5724.,  7107.,  7944.,  7269.,  8124.,  7431.,  8304.,  4470.,  5052.,
      5766.,  6384.,  7917.,  8844.,  8079.,  9024.,  8241.,  9204.,  4950.,
      5592.,  6366.,  7044.,  8727.,  9744.,  8889.,  9924.,  9051.,  10104.,
      5430.,  6132.,  3060.,  3520.,  3994.,  4684.,  4066.,  4768.,  4138.,
      4852.,  2324.,  2800.,  6668.,  7232.,  9322.,  10168., 9466.,  10324.,
      9610.,  10480., 5916.,  6496.,  8166.,  9024.,  11157., 12444., 11319.,
      12624., 11481., 12804., 6870.,  7752.,  8766.,  9684.,  11967., 13344.,
      12129., 13524., 12291., 13704., 7350.,  8292.,  9366.,  10344., 12777.,
      14244., 12939., 14424., 13101., 14604., 7830.,  8832.,  9966.,  11004.,
      13587., 15144., 13749., 15324., 13911., 15504., 8310.,  9372.,  4740.,
      5440.,  6154.,  7204.,  6226.,  7288.,  6298.,  7372.,  3524.,  4240.};
  const std::array<int, 4> in_shape = {{3, 6, 5, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x6x5x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1437.,  1644.,  1599.,  1824.,  1761.,  2004.,  2247.,  2544.,  2409.,
      2724.,  2571.,  2904.,  3057.,  3444.,  3219.,  3624.,  3381.,  3804.,
      3867.,  4344.,  4029.,  4524.,  4191.,  4704.,  6297.,  7044.,  6459.,
      7224.,  6621.,  7404.,  7107.,  7944.,  7269.,  8124.,  7431.,  8304.,
      7917.,  8844.,  8079.,  9024.,  8241.,  9204.,  8727.,  9744.,  8889.,
      9924.,  9051.,  10104., 11157., 12444., 11319., 12624., 11481., 12804.,
      11967., 13344., 12129., 13524., 12291., 13704., 12777., 14244., 12939.,
      14424., 13101., 14604., 13587., 15144., 13749., 15324., 13911., 15504.};
  const std::array<int, 4> in_shape = {{3, 6, 5, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x6x5x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      828.,   856.,   992.,   1024.,  1316.,  1364.,  1562.,  1616.,  1592.,
      1652.,  1862.,  1928.,  1868.,  1940.,  2162.,  2240.,  1220.,  1272.,
      1416.,  1472.,  1860.,  1932.,  2130.,  2208.,  2757.,  2874.,  3162.,
      3288.,  3063.,  3198.,  3504.,  3648.,  3369.,  3522.,  3846.,  4008.,
      2112.,  2220.,  2430.,  2544.,  3000.,  3132.,  3390.,  3528.,  4287.,
      4494.,  4872.,  5088.,  4593.,  4818.,  5214.,  5448.,  4899.,  5142.,
      5556.,  5808.,  3012.,  3180.,  3450.,  3624.,  4140.,  4332.,  4650.,
      4848.,  5817.,  6114.,  6582.,  6888.,  6123.,  6438.,  6924.,  7248.,
      6429.,  6762.,  7266.,  7608.,  3912.,  4140.,  4470.,  4704.,  5280.,
      5532.,  5910.,  6168.,  7347.,  7734.,  8292.,  8688.,  7653.,  8058.,
      8634.,  9048.,  7959.,  8382.,  8976.,  9408.,  4812.,  5100.,  5490.,
      5784.,  2572.,  2760.,  3008.,  3200.,  3380.,  3668.,  4034.,  4328.,
      3512.,  3812.,  4190.,  4496.,  3644.,  3956.,  4346.,  4664.,  2036.,
      2248.,  2504.,  2720.,  6828.,  7096.,  7472.,  7744.,  9596.,  10004.,
      10562., 10976., 9872.,  10292., 10862., 11288., 10148., 10580., 11162.,
      11600., 6260.,  6552.,  6936.,  7232.,  8700.,  9132.,  9690.,  10128.,
      11937., 12594., 13422., 14088., 12243., 12918., 13764., 14448., 12549.,
      13242., 14106., 14808., 7512.,  7980.,  8550.,  9024.,  9840.,  10332.,
      10950., 11448., 13467., 14214., 15132., 15888., 13773., 14538., 15474.,
      16248., 14079., 14862., 15816., 16608., 8412.,  8940.,  9570.,  10104.,
      10980., 11532., 12210., 12768., 14997., 15834., 16842., 17688., 15303.,
      16158., 17184., 18048., 15609., 16482., 17526., 18408., 9312.,  9900.,
      10590., 11184., 12120., 12732., 13470., 14088., 16527., 17454., 18552.,
      19488., 16833., 17778., 18894., 19848., 17139., 18102., 19236., 20208.,
      10212., 10860., 11610., 12264., 5692.,  6120.,  6608.,  7040.,  7340.,
      7988.,  8714.,  9368.,  7472.,  8132.,  8870.,  9536.,  7604.,  8276.,
      9026.,  9704.,  4196.,  4648.,  5144.,  5600.,  12828., 13336., 13952.,
      14464., 17876., 18644., 19562., 20336., 18152., 18932., 19862., 20648.,
      18428., 19220., 20162., 20960., 11300., 11832., 12456., 12992., 15540.,
      16332., 17250., 18048., 21117., 22314., 23682., 24888., 21423., 22638.,
      24024., 25248., 21729., 22962., 24366., 25608., 12912., 13740., 14670.,
      15504., 16680., 17532., 18510., 19368., 22647., 23934., 25392., 26688.,
      22953., 24258., 25734., 27048., 23259., 24582., 26076., 27408., 13812.,
      14700., 15690., 16584., 17820., 18732., 19770., 20688., 24177., 25554.,
      27102., 28488., 24483., 25878., 27444., 28848., 24789., 26202., 27786.,
      29208., 14712., 15660., 16710., 17664., 18960., 19932., 21030., 22008.,
      25707., 27174., 28812., 30288., 26013., 27498., 29154., 30648., 26319.,
      27822., 29496., 31008., 15612., 16620., 17730., 18744., 8812.,  9480.,
      10208., 10880., 11300., 12308., 13394., 14408., 11432., 12452., 13550.,
      14576., 11564., 12596., 13706., 14744., 6356.,  7048.,  7784.,  8480.};
  const std::array<int, 4> in_shape = {{3, 6, 5, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x6x5x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2757.,  2874.,  3162.,  3288.,  3063.,  3198.,  3504.,  3648.,  3369.,
      3522.,  3846.,  4008.,  4287.,  4494.,  4872.,  5088.,  4593.,  4818.,
      5214.,  5448.,  4899.,  5142.,  5556.,  5808.,  5817.,  6114.,  6582.,
      6888.,  6123.,  6438.,  6924.,  7248.,  6429.,  6762.,  7266.,  7608.,
      7347.,  7734.,  8292.,  8688.,  7653.,  8058.,  8634.,  9048.,  7959.,
      8382.,  8976.,  9408.,  11937., 12594., 13422., 14088., 12243., 12918.,
      13764., 14448., 12549., 13242., 14106., 14808., 13467., 14214., 15132.,
      15888., 13773., 14538., 15474., 16248., 14079., 14862., 15816., 16608.,
      14997., 15834., 16842., 17688., 15303., 16158., 17184., 18048., 15609.,
      16482., 17526., 18408., 16527., 17454., 18552., 19488., 16833., 17778.,
      18894., 19848., 17139., 18102., 19236., 20208., 21117., 22314., 23682.,
      24888., 21423., 22638., 24024., 25248., 21729., 22962., 24366., 25608.,
      22647., 23934., 25392., 26688., 22953., 24258., 25734., 27048., 23259.,
      24582., 26076., 27408., 24177., 25554., 27102., 28488., 24483., 25878.,
      27444., 28848., 24789., 26202., 27786., 29208., 25707., 27174., 28812.,
      30288., 26013., 27498., 29154., 30648., 26319., 27822., 29496., 31008.};
  const std::array<int, 4> in_shape = {{3, 6, 5, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x6x5x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1628.,  1656.,  1684.,  1712.,  1952.,  1984.,  2016.,  2048.,  2584.,
      2632.,  2680.,  2728.,  3070.,  3124.,  3178.,  3232.,  3124.,  3184.,
      3244.,  3304.,  3658.,  3724.,  3790.,  3856.,  3664.,  3736.,  3808.,
      3880.,  4246.,  4324.,  4402.,  4480.,  2388.,  2440.,  2492.,  2544.,
      2776.,  2832.,  2888.,  2944.,  3648.,  3720.,  3792.,  3864.,  4182.,
      4260.,  4338.,  4416.,  5397.,  5514.,  5631.,  5748.,  6198.,  6324.,
      6450.,  6576.,  5991.,  6126.,  6261.,  6396.,  6864.,  7008.,  7152.,
      7296.,  6585.,  6738.,  6891.,  7044.,  7530.,  7692.,  7854.,  8016.,
      4116.,  4224.,  4332.,  4440.,  4746.,  4860.,  4974.,  5088.,  5868.,
      6000.,  6132.,  6264.,  6642.,  6780.,  6918.,  7056.,  8367.,  8574.,
      8781.,  8988.,  9528.,  9744.,  9960.,  10176., 8961.,  9186.,  9411.,
      9636.,  10194., 10428., 10662., 10896., 9555.,  9798.,  10041., 10284.,
      10860., 11112., 11364., 11616., 5856.,  6024.,  6192.,  6360.,  6726.,
      6900.,  7074.,  7248.,  8088.,  8280.,  8472.,  8664.,  9102.,  9300.,
      9498.,  9696.,  11337., 11634., 11931., 12228., 12858., 13164., 13470.,
      13776., 11931., 12246., 12561., 12876., 13524., 13848., 14172., 14496.,
      12525., 12858., 13191., 13524., 14190., 14532., 14874., 15216., 7596.,
      7824.,  8052.,  8280.,  8706.,  8940.,  9174.,  9408.,  10308., 10560.,
      10812., 11064., 11562., 11820., 12078., 12336., 14307., 14694., 15081.,
      15468., 16188., 16584., 16980., 17376., 14901., 15306., 15711., 16116.,
      16854., 17268., 17682., 18096., 15495., 15918., 16341., 16764., 17520.,
      17952., 18384., 18816., 9336.,  9624.,  9912.,  10200., 10686., 10980.,
      11274., 11568., 4956.,  5144.,  5332.,  5520.,  5824.,  6016.,  6208.,
      6400.,  6472.,  6760.,  7048.,  7336.,  7774.,  8068.,  8362.,  8656.,
      6724.,  7024.,  7324.,  7624.,  8074.,  8380.,  8686.,  8992.,  6976.,
      7288.,  7600.,  7912.,  8374.,  8692.,  9010.,  9328.,  3860.,  4072.,
      4284.,  4496.,  4792.,  5008.,  5224.,  5440.,  13388., 13656., 13924.,
      14192., 14672., 14944., 15216., 15488., 18784., 19192., 19600., 20008.,
      20710., 21124., 21538., 21952., 19324., 19744., 20164., 20584., 21298.,
      21724., 22150., 22576., 19864., 20296., 20728., 21160., 21886., 22324.,
      22762., 23200., 12228., 12520., 12812., 13104., 13576., 13872., 14168.,
      14464., 16968., 17400., 17832., 18264., 18942., 19380., 19818., 20256.,
      23217., 23874., 24531., 25188., 26178., 26844., 27510., 28176., 23811.,
      24486., 25161., 25836., 26844., 27528., 28212., 28896., 24405., 25098.,
      25791., 26484., 27510., 28212., 28914., 29616., 14556., 15024., 15492.,
      15960., 16626., 17100., 17574., 18048., 19188., 19680., 20172., 20664.,
      21402., 21900., 22398., 22896., 26187., 26934., 27681., 28428., 29508.,
      30264., 31020., 31776., 26781., 27546., 28311., 29076., 30174., 30948.,
      31722., 32496., 27375., 28158., 28941., 29724., 30840., 31632., 32424.,
      33216., 16296., 16824., 17352., 17880., 18606., 19140., 19674., 20208.,
      21408., 21960., 22512., 23064., 23862., 24420., 24978., 25536., 29157.,
      29994., 30831., 31668., 32838., 33684., 34530., 35376., 29751., 30606.,
      31461., 32316., 33504., 34368., 35232., 36096., 30345., 31218., 32091.,
      32964., 34170., 35052., 35934., 36816., 18036., 18624., 19212., 19800.,
      20586., 21180., 21774., 22368., 23628., 24240., 24852., 25464., 26322.,
      26940., 27558., 28176., 32127., 33054., 33981., 34908., 36168., 37104.,
      38040., 38976., 32721., 33666., 34611., 35556., 36834., 37788., 38742.,
      39696., 33315., 34278., 35241., 36204., 37500., 38472., 39444., 40416.,
      19776., 20424., 21072., 21720., 22566., 23220., 23874., 24528., 10956.,
      11384., 11812., 12240., 12784., 13216., 13648., 14080., 14032., 14680.,
      15328., 15976., 16774., 17428., 18082., 18736., 14284., 14944., 15604.,
      16264., 17074., 17740., 18406., 19072., 14536., 15208., 15880., 16552.,
      17374., 18052., 18730., 19408., 7940.,  8392.,  8844.,  9296.,  9832.,
      10288., 10744., 11200., 25148., 25656., 26164., 26672., 27392., 27904.,
      28416., 28928., 34984., 35752., 36520., 37288., 38350., 39124., 39898.,
      40672., 35524., 36304., 37084., 37864., 38938., 39724., 40510., 41296.,
      36064., 36856., 37648., 38440., 39526., 40324., 41122., 41920., 22068.,
      22600., 23132., 23664., 24376., 24912., 25448., 25984., 30288., 31080.,
      31872., 32664., 33702., 34500., 35298., 36096., 41037., 42234., 43431.,
      44628., 46158., 47364., 48570., 49776., 41631., 42846., 44061., 45276.,
      46824., 48048., 49272., 50496., 42225., 43458., 44691., 45924., 47490.,
      48732., 49974., 51216., 24996., 25824., 26652., 27480., 28506., 29340.,
      30174., 31008., 32508., 33360., 34212., 35064., 36162., 37020., 37878.,
      38736., 44007., 45294., 46581., 47868., 49488., 50784., 52080., 53376.,
      44601., 45906., 47211., 48516., 50154., 51468., 52782., 54096., 45195.,
      46518., 47841., 49164., 50820., 52152., 53484., 54816., 26736., 27624.,
      28512., 29400., 30486., 31380., 32274., 33168., 34728., 35640., 36552.,
      37464., 38622., 39540., 40458., 41376., 46977., 48354., 49731., 51108.,
      52818., 54204., 55590., 56976., 47571., 48966., 50361., 51756., 53484.,
      54888., 56292., 57696., 48165., 49578., 50991., 52404., 54150., 55572.,
      56994., 58416., 28476., 29424., 30372., 31320., 32466., 33420., 34374.,
      35328., 36948., 37920., 38892., 39864., 41082., 42060., 43038., 44016.,
      49947., 51414., 52881., 54348., 56148., 57624., 59100., 60576., 50541.,
      52026., 53511., 54996., 56814., 58308., 59802., 61296., 51135., 52638.,
      54141., 55644., 57480., 58992., 60504., 62016., 30216., 31224., 32232.,
      33240., 34446., 35460., 36474., 37488., 16956., 17624., 18292., 18960.,
      19744., 20416., 21088., 21760., 21592., 22600., 23608., 24616., 25774.,
      26788., 27802., 28816., 21844., 22864., 23884., 24904., 26074., 27100.,
      28126., 29152., 22096., 23128., 24160., 25192., 26374., 27412., 28450.,
      29488., 12020., 12712., 13404., 14096., 14872., 15568., 16264., 16960.};
  const std::array<int, 4> in_shape = {{3, 6, 5, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x6x5x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5397.,  5514.,  5631.,  5748.,  6198.,  6324.,  6450.,  6576.,  5991.,
      6126.,  6261.,  6396.,  6864.,  7008.,  7152.,  7296.,  6585.,  6738.,
      6891.,  7044.,  7530.,  7692.,  7854.,  8016.,  8367.,  8574.,  8781.,
      8988.,  9528.,  9744.,  9960.,  10176., 8961.,  9186.,  9411.,  9636.,
      10194., 10428., 10662., 10896., 9555.,  9798.,  10041., 10284., 10860.,
      11112., 11364., 11616., 11337., 11634., 11931., 12228., 12858., 13164.,
      13470., 13776., 11931., 12246., 12561., 12876., 13524., 13848., 14172.,
      14496., 12525., 12858., 13191., 13524., 14190., 14532., 14874., 15216.,
      14307., 14694., 15081., 15468., 16188., 16584., 16980., 17376., 14901.,
      15306., 15711., 16116., 16854., 17268., 17682., 18096., 15495., 15918.,
      16341., 16764., 17520., 17952., 18384., 18816., 23217., 23874., 24531.,
      25188., 26178., 26844., 27510., 28176., 23811., 24486., 25161., 25836.,
      26844., 27528., 28212., 28896., 24405., 25098., 25791., 26484., 27510.,
      28212., 28914., 29616., 26187., 26934., 27681., 28428., 29508., 30264.,
      31020., 31776., 26781., 27546., 28311., 29076., 30174., 30948., 31722.,
      32496., 27375., 28158., 28941., 29724., 30840., 31632., 32424., 33216.,
      29157., 29994., 30831., 31668., 32838., 33684., 34530., 35376., 29751.,
      30606., 31461., 32316., 33504., 34368., 35232., 36096., 30345., 31218.,
      32091., 32964., 34170., 35052., 35934., 36816., 32127., 33054., 33981.,
      34908., 36168., 37104., 38040., 38976., 32721., 33666., 34611., 35556.,
      36834., 37788., 38742., 39696., 33315., 34278., 35241., 36204., 37500.,
      38472., 39444., 40416., 41037., 42234., 43431., 44628., 46158., 47364.,
      48570., 49776., 41631., 42846., 44061., 45276., 46824., 48048., 49272.,
      50496., 42225., 43458., 44691., 45924., 47490., 48732., 49974., 51216.,
      44007., 45294., 46581., 47868., 49488., 50784., 52080., 53376., 44601.,
      45906., 47211., 48516., 50154., 51468., 52782., 54096., 45195., 46518.,
      47841., 49164., 50820., 52152., 53484., 54816., 46977., 48354., 49731.,
      51108., 52818., 54204., 55590., 56976., 47571., 48966., 50361., 51756.,
      53484., 54888., 56292., 57696., 48165., 49578., 50991., 52404., 54150.,
      55572., 56994., 58416., 49947., 51414., 52881., 54348., 56148., 57624.,
      59100., 60576., 50541., 52026., 53511., 54996., 56814., 58308., 59802.,
      61296., 51135., 52638., 54141., 55644., 57480., 58992., 60504., 62016.};
  const std::array<int, 4> in_shape = {{3, 6, 5, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x6x5x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1556.,  1712.,  1876.,  2048.,  2494.,  2728.,  2974.,  3232.,  3046.,
      3304.,  3574.,  3856.,  3598.,  3880.,  4174.,  4480.,  2356.,  2544.,
      2740.,  2944.,  3606.,  3864.,  4134.,  4416.,  5361.,  5748.,  6153.,
      6576.,  5973.,  6396.,  6837.,  7296.,  6585.,  7044.,  7521.,  8016.,
      4134.,  4440.,  4758.,  5088.,  5886.,  6264.,  6654.,  7056.,  8421.,
      8988.,  9573.,  10176., 9033.,  9636.,  10257., 10896., 9645.,  10284.,
      10941., 11616., 5934.,  6360.,  6798.,  7248.,  8166.,  8664.,  9174.,
      9696.,  11481., 12228., 12993., 13776., 12093., 12876., 13677., 14496.,
      12705., 13524., 14361., 15216., 7734.,  8280.,  8838.,  9408.,  10446.,
      11064., 11694., 12336., 14541., 15468., 16413., 17376., 15153., 16116.,
      17097., 18096., 15765., 16764., 17781., 18816., 9534.,  10200., 10878.,
      11568., 5092.,  5520.,  5956.,  6400.,  6694.,  7336.,  7990.,  8656.,
      6958.,  7624.,  8302.,  8992.,  7222.,  7912.,  8614.,  9328.,  4036.,
      4496.,  4964.,  5440.,  13556., 14192., 14836., 15488., 19054., 20008.,
      20974., 21952., 19606., 20584., 21574., 22576., 20158., 21160., 22174.,
      23200., 12436., 13104., 13780., 14464., 17286., 18264., 19254., 20256.,
      23721., 25188., 26673., 28176., 24333., 25836., 27357., 28896., 24945.,
      26484., 28041., 29616., 14934., 15960., 16998., 18048., 19566., 20664.,
      21774., 22896., 26781., 28428., 30093., 31776., 27393., 29076., 30777.,
      32496., 28005., 29724., 31461., 33216., 16734., 17880., 19038., 20208.,
      21846., 23064., 24294., 25536., 29841., 31668., 33513., 35376., 30453.,
      32316., 34197., 36096., 31065., 32964., 34881., 36816., 18534., 19800.,
      21078., 22368., 24126., 25464., 26814., 28176., 32901., 34908., 36933.,
      38976., 33513., 35556., 37617., 39696., 34125., 36204., 38301., 40416.,
      20334., 21720., 23118., 24528., 11332., 12240., 13156., 14080., 14614.,
      15976., 17350., 18736., 14878., 16264., 17662., 19072., 15142., 16552.,
      17974., 19408., 8356.,  9296.,  10244., 11200., 25556., 26672., 27796.,
      28928., 35614., 37288., 38974., 40672., 36166., 37864., 39574., 41296.,
      36718., 38440., 40174., 41920., 22516., 23664., 24820., 25984., 30966.,
      32664., 34374., 36096., 42081., 44628., 47193., 49776., 42693., 45276.,
      47877., 50496., 43305., 45924., 48561., 51216., 25734., 27480., 29238.,
      31008., 33246., 35064., 36894., 38736., 45141., 47868., 50613., 53376.,
      45753., 48516., 51297., 54096., 46365., 49164., 51981., 54816., 27534.,
      29400., 31278., 33168., 35526., 37464., 39414., 41376., 48201., 51108.,
      54033., 56976., 48813., 51756., 54717., 57696., 49425., 52404., 55401.,
      58416., 29334., 31320., 33318., 35328., 37806., 39864., 41934., 44016.,
      51261., 54348., 57453., 60576., 51873., 54996., 58137., 61296., 52485.,
      55644., 58821., 62016., 31134., 33240., 35358., 37488., 17572., 18960.,
      20356., 21760., 22534., 24616., 26710., 28816., 22798., 24904., 27022.,
      29152., 23062., 25192., 27334., 29488., 12676., 14096., 15524., 16960.};
  const std::array<int, 4> in_shape = {{3, 6, 5, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x6x5x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5361.,  5748.,  6153.,  6576.,  5973.,  6396.,  6837.,  7296.,  6585.,
      7044.,  7521.,  8016.,  8421.,  8988.,  9573.,  10176., 9033.,  9636.,
      10257., 10896., 9645.,  10284., 10941., 11616., 11481., 12228., 12993.,
      13776., 12093., 12876., 13677., 14496., 12705., 13524., 14361., 15216.,
      14541., 15468., 16413., 17376., 15153., 16116., 17097., 18096., 15765.,
      16764., 17781., 18816., 23721., 25188., 26673., 28176., 24333., 25836.,
      27357., 28896., 24945., 26484., 28041., 29616., 26781., 28428., 30093.,
      31776., 27393., 29076., 30777., 32496., 28005., 29724., 31461., 33216.,
      29841., 31668., 33513., 35376., 30453., 32316., 34197., 36096., 31065.,
      32964., 34881., 36816., 32901., 34908., 36933., 38976., 33513., 35556.,
      37617., 39696., 34125., 36204., 38301., 40416., 42081., 44628., 47193.,
      49776., 42693., 45276., 47877., 50496., 43305., 45924., 48561., 51216.,
      45141., 47868., 50613., 53376., 45753., 48516., 51297., 54096., 46365.,
      49164., 51981., 54816., 48201., 51108., 54033., 56976., 48813., 51756.,
      54717., 57696., 49425., 52404., 55401., 58416., 51261., 54348., 57453.,
      60576., 51873., 54996., 58137., 61296., 52485., 55644., 58821., 62016.};
  const std::array<int, 4> in_shape = {{3, 6, 5, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x6x5x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3060.,   3112.,   3368.,   3424.,   3692.,   3752.,   4032.,   4096.,
      4898.,   4988.,   5360.,   5456.,   5846.,   5948.,   6356.,   6464.,
      5978.,   6092.,   6488.,   6608.,   7022.,   7148.,   7580.,   7712.,
      7058.,   7196.,   7616.,   7760.,   8198.,   8348.,   8804.,   8960.,
      4612.,   4712.,   4984.,   5088.,   5372.,   5480.,   5776.,   5888.,
      7074.,   7212.,   7584.,   7728.,   8118.,   8268.,   8676.,   8832.,
      10497.,  10722.,  11262.,  11496.,  12063.,  12306.,  12900.,  13152.,
      11685.,  11946.,  12522.,  12792.,  13395.,  13674.,  14304.,  14592.,
      12873.,  13170.,  13782.,  14088.,  14727.,  15042.,  15708.,  16032.,
      8058.,   8268.,   8664.,   8880.,   9294.,   9516.,   9948.,   10176.,
      11514.,  11772.,  12264.,  12528.,  13038.,  13308.,  13836.,  14112.,
      16437.,  16842.,  17562.,  17976.,  18723.,  19146.,  19920.,  20352.,
      17625.,  18066.,  18822.,  19272.,  20055.,  20514.,  21324.,  21792.,
      18813.,  19290.,  20082.,  20568.,  21387.,  21882.,  22728.,  23232.,
      11538.,  11868.,  12384.,  12720.,  13254.,  13596.,  14148.,  14496.,
      15954.,  16332.,  16944.,  17328.,  17958.,  18348.,  18996.,  19392.,
      22377.,  22962.,  23862.,  24456.,  25383.,  25986.,  26940.,  27552.,
      23565.,  24186.,  25122.,  25752.,  26715.,  27354.,  28344.,  28992.,
      24753.,  25410.,  26382.,  27048.,  28047.,  28722.,  29748.,  30432.,
      15018.,  15468.,  16104.,  16560.,  17214.,  17676.,  18348.,  18816.,
      20394.,  20892.,  21624.,  22128.,  22878.,  23388.,  24156.,  24672.,
      28317.,  29082.,  30162.,  30936.,  32043.,  32826.,  33960.,  34752.,
      29505.,  30306.,  31422.,  32232.,  33375.,  34194.,  35364.,  36192.,
      30693.,  31530.,  32682.,  33528.,  34707.,  35562.,  36768.,  37632.,
      18498.,  19068.,  19824.,  20400.,  21174.,  21756.,  22548.,  23136.,
      9812.,   10184.,  10664.,  11040.,  11532.,  11912.,  12416.,  12800.,
      12818.,  13388.,  14096.,  14672.,  15398.,  15980.,  16724.,  17312.,
      13322.,  13916.,  14648.,  15248.,  15998.,  16604.,  17372.,  17984.,
      13826.,  14444.,  15200.,  15824.,  16598.,  17228.,  18020.,  18656.,
      7652.,   8072.,   8568.,   8992.,   9500.,   9928.,   10448.,  10880.,
      26580.,  27112.,  27848.,  28384.,  29132.,  29672.,  30432.,  30976.,
      37298.,  38108.,  39200.,  40016.,  41126.,  41948.,  43076.,  43904.,
      38378.,  39212.,  40328.,  41168.,  42302.,  43148.,  44300.,  45152.,
      39458.,  40316.,  41456.,  42320.,  43478.,  44348.,  45524.,  46400.,
      24292.,  24872.,  25624.,  26208.,  26972.,  27560.,  28336.,  28928.,
      33714.,  34572.,  35664.,  36528.,  37638.,  38508.,  39636.,  40512.,
      46137.,  47442.,  49062.,  50376.,  52023.,  53346.,  55020.,  56352.,
      47325.,  48666.,  50322.,  51672.,  53355.,  54714.,  56424.,  57792.,
      48513.,  49890.,  51582.,  52968.,  54687.,  56082.,  57828.,  59232.,
      28938.,  29868.,  30984.,  31920.,  33054.,  33996.,  35148.,  36096.,
      38154.,  39132.,  40344.,  41328.,  42558.,  43548.,  44796.,  45792.,
      52077.,  53562.,  55362.,  56856.,  58683.,  60186.,  62040.,  63552.,
      53265.,  54786.,  56622.,  58152.,  60015.,  61554.,  63444.,  64992.,
      54453.,  56010.,  57882.,  59448.,  61347.,  62922.,  64848.,  66432.,
      32418.,  33468.,  34704.,  35760.,  37014.,  38076.,  39348.,  40416.,
      42594.,  43692.,  45024.,  46128.,  47478.,  48588.,  49956.,  51072.,
      58017.,  59682.,  61662.,  63336.,  65343.,  67026.,  69060.,  70752.,
      59205.,  60906.,  62922.,  64632.,  66675.,  68394.,  70464.,  72192.,
      60393.,  62130.,  64182.,  65928.,  68007.,  69762.,  71868.,  73632.,
      35898.,  37068.,  38424.,  39600.,  40974.,  42156.,  43548.,  44736.,
      47034.,  48252.,  49704.,  50928.,  52398.,  53628.,  55116.,  56352.,
      63957.,  65802.,  67962.,  69816.,  72003.,  73866.,  76080.,  77952.,
      65145.,  67026.,  69222.,  71112.,  73335.,  75234.,  77484.,  79392.,
      66333.,  68250.,  70482.,  72408.,  74667.,  76602.,  78888.,  80832.,
      39378.,  40668.,  42144.,  43440.,  44934.,  46236.,  47748.,  49056.,
      21812.,  22664.,  23624.,  24480.,  25452.,  26312.,  27296.,  28160.,
      27938.,  29228.,  30656.,  31952.,  33398.,  34700.,  36164.,  37472.,
      28442.,  29756.,  31208.,  32528.,  33998.,  35324.,  36812.,  38144.,
      28946.,  30284.,  31760.,  33104.,  34598.,  35948.,  37460.,  38816.,
      15812.,  16712.,  17688.,  18592.,  19580.,  20488.,  21488.,  22400.,
      50100.,  51112.,  52328.,  53344.,  54572.,  55592.,  56832.,  57856.,
      69698.,  71228.,  73040.,  74576.,  76406.,  77948.,  79796.,  81344.,
      70778.,  72332.,  74168.,  75728.,  77582.,  79148.,  81020.,  82592.,
      71858.,  73436.,  75296.,  76880.,  78758.,  80348.,  82244.,  83840.,
      43972.,  45032.,  46264.,  47328.,  48572.,  49640.,  50896.,  51968.,
      60354.,  61932.,  63744.,  65328.,  67158.,  68748.,  70596.,  72192.,
      81777.,  84162.,  86862.,  89256.,  91983.,  94386.,  97140.,  99552.,
      82965.,  85386.,  88122.,  90552.,  93315.,  95754.,  98544.,  100992.,
      84153.,  86610.,  89382.,  91848.,  94647.,  97122.,  99948.,  102432.,
      49818.,  51468.,  53304.,  54960.,  56814.,  58476.,  60348.,  62016.,
      64794.,  66492.,  68424.,  70128.,  72078.,  73788.,  75756.,  77472.,
      87717.,  90282.,  93162.,  95736.,  98643.,  101226., 104160., 106752.,
      88905.,  91506.,  94422.,  97032.,  99975.,  102594., 105564., 108192.,
      90093.,  92730.,  95682.,  98328.,  101307., 103962., 106968., 109632.,
      53298.,  55068.,  57024.,  58800.,  60774.,  62556.,  64548.,  66336.,
      69234.,  71052.,  73104.,  74928.,  76998.,  78828.,  80916.,  82752.,
      93657.,  96402.,  99462.,  102216., 105303., 108066., 111180., 113952.,
      94845.,  97626.,  100722., 103512., 106635., 109434., 112584., 115392.,
      96033.,  98850.,  101982., 104808., 107967., 110802., 113988., 116832.,
      56778.,  58668.,  60744.,  62640.,  64734.,  66636.,  68748.,  70656.,
      73674.,  75612.,  77784.,  79728.,  81918.,  83868.,  86076.,  88032.,
      99597.,  102522., 105762., 108696., 111963., 114906., 118200., 121152.,
      100785., 103746., 107022., 109992., 113295., 116274., 119604., 122592.,
      101973., 104970., 108282., 111288., 114627., 117642., 121008., 124032.,
      60258.,  62268.,  64464.,  66480.,  68694.,  70716.,  72948.,  74976.,
      33812.,  35144.,  36584.,  37920.,  39372.,  40712.,  42176.,  43520.,
      43058.,  45068.,  47216.,  49232.,  51398.,  53420.,  55604.,  57632.,
      43562.,  45596.,  47768.,  49808.,  51998.,  54044.,  56252.,  58304.,
      44066.,  46124.,  48320.,  50384.,  52598.,  54668.,  56900.,  58976.,
      23972.,  25352.,  26808.,  28192.,  29660.,  31048.,  32528.,  33920.};
  const std::array<int, 4> in_shape = {{3, 6, 5, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x6x5x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      10497.,  10722.,  11262.,  11496.,  12063.,  12306.,  12900.,  13152.,
      11685.,  11946.,  12522.,  12792.,  13395.,  13674.,  14304.,  14592.,
      12873.,  13170.,  13782.,  14088.,  14727.,  15042.,  15708.,  16032.,
      16437.,  16842.,  17562.,  17976.,  18723.,  19146.,  19920.,  20352.,
      17625.,  18066.,  18822.,  19272.,  20055.,  20514.,  21324.,  21792.,
      18813.,  19290.,  20082.,  20568.,  21387.,  21882.,  22728.,  23232.,
      22377.,  22962.,  23862.,  24456.,  25383.,  25986.,  26940.,  27552.,
      23565.,  24186.,  25122.,  25752.,  26715.,  27354.,  28344.,  28992.,
      24753.,  25410.,  26382.,  27048.,  28047.,  28722.,  29748.,  30432.,
      28317.,  29082.,  30162.,  30936.,  32043.,  32826.,  33960.,  34752.,
      29505.,  30306.,  31422.,  32232.,  33375.,  34194.,  35364.,  36192.,
      30693.,  31530.,  32682.,  33528.,  34707.,  35562.,  36768.,  37632.,
      46137.,  47442.,  49062.,  50376.,  52023.,  53346.,  55020.,  56352.,
      47325.,  48666.,  50322.,  51672.,  53355.,  54714.,  56424.,  57792.,
      48513.,  49890.,  51582.,  52968.,  54687.,  56082.,  57828.,  59232.,
      52077.,  53562.,  55362.,  56856.,  58683.,  60186.,  62040.,  63552.,
      53265.,  54786.,  56622.,  58152.,  60015.,  61554.,  63444.,  64992.,
      54453.,  56010.,  57882.,  59448.,  61347.,  62922.,  64848.,  66432.,
      58017.,  59682.,  61662.,  63336.,  65343.,  67026.,  69060.,  70752.,
      59205.,  60906.,  62922.,  64632.,  66675.,  68394.,  70464.,  72192.,
      60393.,  62130.,  64182.,  65928.,  68007.,  69762.,  71868.,  73632.,
      63957.,  65802.,  67962.,  69816.,  72003.,  73866.,  76080.,  77952.,
      65145.,  67026.,  69222.,  71112.,  73335.,  75234.,  77484.,  79392.,
      66333.,  68250.,  70482.,  72408.,  74667.,  76602.,  78888.,  80832.,
      81777.,  84162.,  86862.,  89256.,  91983.,  94386.,  97140.,  99552.,
      82965.,  85386.,  88122.,  90552.,  93315.,  95754.,  98544.,  100992.,
      84153.,  86610.,  89382.,  91848.,  94647.,  97122.,  99948.,  102432.,
      87717.,  90282.,  93162.,  95736.,  98643.,  101226., 104160., 106752.,
      88905.,  91506.,  94422.,  97032.,  99975.,  102594., 105564., 108192.,
      90093.,  92730.,  95682.,  98328.,  101307., 103962., 106968., 109632.,
      93657.,  96402.,  99462.,  102216., 105303., 108066., 111180., 113952.,
      94845.,  97626.,  100722., 103512., 106635., 109434., 112584., 115392.,
      96033.,  98850.,  101982., 104808., 107967., 110802., 113988., 116832.,
      99597.,  102522., 105762., 108696., 111963., 114906., 118200., 121152.,
      100785., 103746., 107022., 109992., 113295., 116274., 119604., 122592.,
      101973., 104970., 108282., 111288., 114627., 117642., 121008., 124032.};
  const std::array<int, 4> in_shape = {{3, 6, 5, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x6x5x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6068.,   6120.,   6172.,   6224.,   6680.,   6736.,   6792.,   6848.,
      7324.,   7384.,   7444.,   7504.,   8000.,   8064.,   8128.,   8192.,
      9706.,   9796.,   9886.,   9976.,   10624.,  10720.,  10816.,  10912.,
      11590.,  11692.,  11794.,  11896.,  12604.,  12712.,  12820.,  12928.,
      11842.,  11956.,  12070.,  12184.,  12856.,  12976.,  13096.,  13216.,
      13918.,  14044.,  14170.,  14296.,  15028.,  15160.,  15292.,  15424.,
      13978.,  14116.,  14254.,  14392.,  15088.,  15232.,  15376.,  15520.,
      16246.,  16396.,  16546.,  16696.,  17452.,  17608.,  17764.,  17920.,
      9124.,   9224.,   9324.,   9424.,   9864.,   9968.,   10072.,  10176.,
      10636.,  10744.,  10852.,  10960.,  11440.,  11552.,  11664.,  11776.,
      14010.,  14148.,  14286.,  14424.,  15024.,  15168.,  15312.,  15456.,
      16086.,  16236.,  16386.,  16536.,  17196.,  17352.,  17508.,  17664.,
      20769.,  20994.,  21219.,  21444.,  22290.,  22524.,  22758.,  22992.,
      23883.,  24126.,  24369.,  24612.,  25548.,  25800.,  26052.,  26304.,
      23109.,  23370.,  23631.,  23892.,  24774.,  25044.,  25314.,  25584.,
      26511.,  26790.,  27069.,  27348.,  28320.,  28608.,  28896.,  29184.,
      25449.,  25746.,  26043.,  26340.,  27258.,  27564.,  27870.,  28176.,
      29139.,  29454.,  29769.,  30084.,  31092.,  31416.,  31740.,  32064.,
      15906.,  16116.,  16326.,  16536.,  17112.,  17328.,  17544.,  17760.,
      18366.,  18588.,  18810.,  19032.,  19668.,  19896.,  20124.,  20352.,
      22770.,  23028.,  23286.,  23544.,  24264.,  24528.,  24792.,  25056.,
      25806.,  26076.,  26346.,  26616.,  27396.,  27672.,  27948.,  28224.,
      32469.,  32874.,  33279.,  33684.,  34710.,  35124.,  35538.,  35952.,
      37023.,  37446.,  37869.,  38292.,  39408.,  39840.,  40272.,  40704.,
      34809.,  35250.,  35691.,  36132.,  37194.,  37644.,  38094.,  38544.,
      39651.,  40110.,  40569.,  41028.,  42180.,  42648.,  43116.,  43584.,
      37149.,  37626.,  38103.,  38580.,  39678.,  40164.,  40650.,  41136.,
      42279.,  42774.,  43269.,  43764.,  44952.,  45456.,  45960.,  46464.,
      22746.,  23076.,  23406.,  23736.,  24432.,  24768.,  25104.,  25440.,
      26166.,  26508.,  26850.,  27192.,  27948.,  28296.,  28644.,  28992.,
      31530.,  31908.,  32286.,  32664.,  33504.,  33888.,  34272.,  34656.,
      35526.,  35916.,  36306.,  36696.,  37596.,  37992.,  38388.,  38784.,
      44169.,  44754.,  45339.,  45924.,  47130.,  47724.,  48318.,  48912.,
      50163.,  50766.,  51369.,  51972.,  53268.,  53880.,  54492.,  55104.,
      46509.,  47130.,  47751.,  48372.,  49614.,  50244.,  50874.,  51504.,
      52791.,  53430.,  54069.,  54708.,  56040.,  56688.,  57336.,  57984.,
      48849.,  49506.,  50163.,  50820.,  52098.,  52764.,  53430.,  54096.,
      55419.,  56094.,  56769.,  57444.,  58812.,  59496.,  60180.,  60864.,
      29586.,  30036.,  30486.,  30936.,  31752.,  32208.,  32664.,  33120.,
      33966.,  34428.,  34890.,  35352.,  36228.,  36696.,  37164.,  37632.,
      40290.,  40788.,  41286.,  41784.,  42744.,  43248.,  43752.,  44256.,
      45246.,  45756.,  46266.,  46776.,  47796.,  48312.,  48828.,  49344.,
      55869.,  56634.,  57399.,  58164.,  59550.,  60324.,  61098.,  61872.,
      63303.,  64086.,  64869.,  65652.,  67128.,  67920.,  68712.,  69504.,
      58209.,  59010.,  59811.,  60612.,  62034.,  62844.,  63654.,  64464.,
      65931.,  66750.,  67569.,  68388.,  69900.,  70728.,  71556.,  72384.,
      60549.,  61386.,  62223.,  63060.,  64518.,  65364.,  66210.,  67056.,
      68559.,  69414.,  70269.,  71124.,  72672.,  73536.,  74400.,  75264.,
      36426.,  36996.,  37566.,  38136.,  39072.,  39648.,  40224.,  40800.,
      41766.,  42348.,  42930.,  43512.,  44508.,  45096.,  45684.,  46272.,
      19252.,  19624.,  19996.,  20368.,  20952.,  21328.,  21704.,  22080.,
      22684.,  23064.,  23444.,  23824.,  24448.,  24832.,  25216.,  25600.,
      25066.,  25636.,  26206.,  26776.,  27616.,  28192.,  28768.,  29344.,
      30214.,  30796.,  31378.,  31960.,  32860.,  33448.,  34036.,  34624.,
      26050.,  26644.,  27238.,  27832.,  28696.,  29296.,  29896.,  30496.,
      31390.,  31996.,  32602.,  33208.,  34132.,  34744.,  35356.,  35968.,
      27034.,  27652.,  28270.,  28888.,  29776.,  30400.,  31024.,  31648.,
      32566.,  33196.,  33826.,  34456.,  35404.,  36040.,  36676.,  37312.,
      14884.,  15304.,  15724.,  16144.,  16712.,  17136.,  17560.,  17984.,
      18572.,  19000.,  19428.,  19856.,  20464.,  20896.,  21328.,  21760.,
      52628.,  53160.,  53692.,  54224.,  55160.,  55696.,  56232.,  56768.,
      57724.,  58264.,  58804.,  59344.,  60320.,  60864.,  61408.,  61952.,
      73786.,  74596.,  75406.,  76216.,  77584.,  78400.,  79216.,  80032.,
      81430.,  82252.,  83074.,  83896.,  85324.,  86152.,  86980.,  87808.,
      75922.,  76756.,  77590.,  78424.,  79816.,  80656.,  81496.,  82336.,
      83758.,  84604.,  85450.,  86296.,  87748.,  88600.,  89452.,  90304.,
      78058.,  78916.,  79774.,  80632.,  82048.,  82912.,  83776.,  84640.,
      86086.,  86956.,  87826.,  88696.,  90172.,  91048.,  91924.,  92800.,
      48004.,  48584.,  49164.,  49744.,  50664.,  51248.,  51832.,  52416.,
      53356.,  53944.,  54532.,  55120.,  56080.,  56672.,  57264.,  57856.,
      66570.,  67428.,  68286.,  69144.,  70464.,  71328.,  72192.,  73056.,
      74406.,  75276.,  76146.,  77016.,  78396.,  79272.,  80148.,  81024.,
      90969.,  92274.,  93579.,  94884.,  96810.,  98124.,  99438.,  100752.,
      102723., 104046., 105369., 106692., 108708., 110040., 111372., 112704.,
      93309.,  94650.,  95991.,  97332.,  99294.,  100644., 101994., 103344.,
      105351., 106710., 108069., 109428., 111480., 112848., 114216., 115584.,
      95649.,  97026.,  98403.,  99780.,  101778., 103164., 104550., 105936.,
      107979., 109374., 110769., 112164., 114252., 115656., 117060., 118464.,
      56946.,  57876.,  58806.,  59736.,  61032.,  61968.,  62904.,  63840.,
      65166.,  66108.,  67050.,  67992.,  69348.,  70296.,  71244.,  72192.,
      75330.,  76308.,  77286.,  78264.,  79704.,  80688.,  81672.,  82656.,
      84126.,  85116.,  86106.,  87096.,  88596.,  89592.,  90588.,  91584.,
      102669., 104154., 105639., 107124., 109230., 110724., 112218., 113712.,
      115863., 117366., 118869., 120372., 122568., 124080., 125592., 127104.,
      105009., 106530., 108051., 109572., 111714., 113244., 114774., 116304.,
      118491., 120030., 121569., 123108., 125340., 126888., 128436., 129984.,
      107349., 108906., 110463., 112020., 114198., 115764., 117330., 118896.,
      121119., 122694., 124269., 125844., 128112., 129696., 131280., 132864.,
      63786.,  64836.,  65886.,  66936.,  68352.,  69408.,  70464.,  71520.,
      72966.,  74028.,  75090.,  76152.,  77628.,  78696.,  79764.,  80832.,
      84090.,  85188.,  86286.,  87384.,  88944.,  90048.,  91152.,  92256.,
      93846.,  94956.,  96066.,  97176.,  98796.,  99912.,  101028., 102144.,
      114369., 116034., 117699., 119364., 121650., 123324., 124998., 126672.,
      129003., 130686., 132369., 134052., 136428., 138120., 139812., 141504.,
      116709., 118410., 120111., 121812., 124134., 125844., 127554., 129264.,
      131631., 133350., 135069., 136788., 139200., 140928., 142656., 144384.,
      119049., 120786., 122523., 124260., 126618., 128364., 130110., 131856.,
      134259., 136014., 137769., 139524., 141972., 143736., 145500., 147264.,
      70626.,  71796.,  72966.,  74136.,  75672.,  76848.,  78024.,  79200.,
      80766.,  81948.,  83130.,  84312.,  85908.,  87096.,  88284.,  89472.,
      92850.,  94068.,  95286.,  96504.,  98184.,  99408.,  100632., 101856.,
      103566., 104796., 106026., 107256., 108996., 110232., 111468., 112704.,
      126069., 127914., 129759., 131604., 134070., 135924., 137778., 139632.,
      142143., 144006., 145869., 147732., 150288., 152160., 154032., 155904.,
      128409., 130290., 132171., 134052., 136554., 138444., 140334., 142224.,
      144771., 146670., 148569., 150468., 153060., 154968., 156876., 158784.,
      130749., 132666., 134583., 136500., 139038., 140964., 142890., 144816.,
      147399., 149334., 151269., 153204., 155832., 157776., 159720., 161664.,
      77466.,  78756.,  80046.,  81336.,  82992.,  84288.,  85584.,  86880.,
      88566.,  89868.,  91170.,  92472.,  94188.,  95496.,  96804.,  98112.,
      42772.,  43624.,  44476.,  45328.,  46392.,  47248.,  48104.,  48960.,
      50044.,  50904.,  51764.,  52624.,  53728.,  54592.,  55456.,  56320.,
      54586.,  55876.,  57166.,  58456.,  60016.,  61312.,  62608.,  63904.,
      65494.,  66796.,  68098.,  69400.,  71020.,  72328.,  73636.,  74944.,
      55570.,  56884.,  58198.,  59512.,  61096.,  62416.,  63736.,  65056.,
      66670.,  67996.,  69322.,  70648.,  72292.,  73624.,  74956.,  76288.,
      56554.,  57892.,  59230.,  60568.,  62176.,  63520.,  64864.,  66208.,
      67846.,  69196.,  70546.,  71896.,  73564.,  74920.,  76276.,  77632.,
      30724.,  31624.,  32524.,  33424.,  34472.,  35376.,  36280.,  37184.,
      38252.,  39160.,  40068.,  40976.,  42064.,  42976.,  43888.,  44800.,
      99188.,  100200., 101212., 102224., 103640., 104656., 105672., 106688.,
      108124., 109144., 110164., 111184., 112640., 113664., 114688., 115712.,
      137866., 139396., 140926., 142456., 144544., 146080., 147616., 149152.,
      151270., 152812., 154354., 155896., 158044., 159592., 161140., 162688.,
      140002., 141556., 143110., 144664., 146776., 148336., 149896., 151456.,
      153598., 155164., 156730., 158296., 160468., 162040., 163612., 165184.,
      142138., 143716., 145294., 146872., 149008., 150592., 152176., 153760.,
      155926., 157516., 159106., 160696., 162892., 164488., 166084., 167680.,
      86884.,  87944.,  89004.,  90064.,  91464.,  92528.,  93592.,  94656.,
      96076.,  97144.,  98212.,  99280.,  100720., 101792., 102864., 103936.,
      119130., 120708., 122286., 123864., 125904., 127488., 129072., 130656.,
      132726., 134316., 135906., 137496., 139596., 141192., 142788., 144384.,
      161169., 163554., 165939., 168324., 171330., 173724., 176118., 178512.,
      181563., 183966., 186369., 188772., 191868., 194280., 196692., 199104.,
      163509., 165930., 168351., 170772., 173814., 176244., 178674., 181104.,
      184191., 186630., 189069., 191508., 194640., 197088., 199536., 201984.,
      165849., 168306., 170763., 173220., 176298., 178764., 181230., 183696.,
      186819., 189294., 191769., 194244., 197412., 199896., 202380., 204864.,
      97986.,  99636.,  101286., 102936., 104952., 106608., 108264., 109920.,
      111966., 113628., 115290., 116952., 119028., 120696., 122364., 124032.,
      127890., 129588., 131286., 132984., 135144., 136848., 138552., 140256.,
      142446., 144156., 145866., 147576., 149796., 151512., 153228., 154944.,
      172869., 175434., 177999., 180564., 183750., 186324., 188898., 191472.,
      194703., 197286., 199869., 202452., 205728., 208320., 210912., 213504.,
      175209., 177810., 180411., 183012., 186234., 188844., 191454., 194064.,
      197331., 199950., 202569., 205188., 208500., 211128., 213756., 216384.,
      177549., 180186., 182823., 185460., 188718., 191364., 194010., 196656.,
      199959., 202614., 205269., 207924., 211272., 213936., 216600., 219264.,
      104826., 106596., 108366., 110136., 112272., 114048., 115824., 117600.,
      119766., 121548., 123330., 125112., 127308., 129096., 130884., 132672.,
      136650., 138468., 140286., 142104., 144384., 146208., 148032., 149856.,
      152166., 153996., 155826., 157656., 159996., 161832., 163668., 165504.,
      184569., 187314., 190059., 192804., 196170., 198924., 201678., 204432.,
      207843., 210606., 213369., 216132., 219588., 222360., 225132., 227904.,
      186909., 189690., 192471., 195252., 198654., 201444., 204234., 207024.,
      210471., 213270., 216069., 218868., 222360., 225168., 227976., 230784.,
      189249., 192066., 194883., 197700., 201138., 203964., 206790., 209616.,
      213099., 215934., 218769., 221604., 225132., 227976., 230820., 233664.,
      111666., 113556., 115446., 117336., 119592., 121488., 123384., 125280.,
      127566., 129468., 131370., 133272., 135588., 137496., 139404., 141312.,
      145410., 147348., 149286., 151224., 153624., 155568., 157512., 159456.,
      161886., 163836., 165786., 167736., 170196., 172152., 174108., 176064.,
      196269., 199194., 202119., 205044., 208590., 211524., 214458., 217392.,
      220983., 223926., 226869., 229812., 233448., 236400., 239352., 242304.,
      198609., 201570., 204531., 207492., 211074., 214044., 217014., 219984.,
      223611., 226590., 229569., 232548., 236220., 239208., 242196., 245184.,
      200949., 203946., 206943., 209940., 213558., 216564., 219570., 222576.,
      226239., 229254., 232269., 235284., 238992., 242016., 245040., 248064.,
      118506., 120516., 122526., 124536., 126912., 128928., 130944., 132960.,
      135366., 137388., 139410., 141432., 143868., 145896., 147924., 149952.,
      66292.,  67624.,  68956.,  70288.,  71832.,  73168.,  74504.,  75840.,
      77404.,  78744.,  80084.,  81424.,  83008.,  84352.,  85696.,  87040.,
      84106.,  86116.,  88126.,  90136.,  92416.,  94432.,  96448.,  98464.,
      100774., 102796., 104818., 106840., 109180., 111208., 113236., 115264.,
      85090.,  87124.,  89158.,  91192.,  93496.,  95536.,  97576.,  99616.,
      101950., 103996., 106042., 108088., 110452., 112504., 114556., 116608.,
      86074.,  88132.,  90190.,  92248.,  94576.,  96640.,  98704.,  100768.,
      103126., 105196., 107266., 109336., 111724., 113800., 115876., 117952.,
      46564.,  47944.,  49324.,  50704.,  52232.,  53616.,  55000.,  56384.,
      57932.,  59320.,  60708.,  62096.,  63664.,  65056.,  66448.,  67840.};
  const std::array<int, 4> in_shape = {{3, 6, 5, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x6x5x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      20769.,  20994.,  21219.,  21444.,  22290.,  22524.,  22758.,  22992.,
      23883.,  24126.,  24369.,  24612.,  25548.,  25800.,  26052.,  26304.,
      23109.,  23370.,  23631.,  23892.,  24774.,  25044.,  25314.,  25584.,
      26511.,  26790.,  27069.,  27348.,  28320.,  28608.,  28896.,  29184.,
      25449.,  25746.,  26043.,  26340.,  27258.,  27564.,  27870.,  28176.,
      29139.,  29454.,  29769.,  30084.,  31092.,  31416.,  31740.,  32064.,
      32469.,  32874.,  33279.,  33684.,  34710.,  35124.,  35538.,  35952.,
      37023.,  37446.,  37869.,  38292.,  39408.,  39840.,  40272.,  40704.,
      34809.,  35250.,  35691.,  36132.,  37194.,  37644.,  38094.,  38544.,
      39651.,  40110.,  40569.,  41028.,  42180.,  42648.,  43116.,  43584.,
      37149.,  37626.,  38103.,  38580.,  39678.,  40164.,  40650.,  41136.,
      42279.,  42774.,  43269.,  43764.,  44952.,  45456.,  45960.,  46464.,
      44169.,  44754.,  45339.,  45924.,  47130.,  47724.,  48318.,  48912.,
      50163.,  50766.,  51369.,  51972.,  53268.,  53880.,  54492.,  55104.,
      46509.,  47130.,  47751.,  48372.,  49614.,  50244.,  50874.,  51504.,
      52791.,  53430.,  54069.,  54708.,  56040.,  56688.,  57336.,  57984.,
      48849.,  49506.,  50163.,  50820.,  52098.,  52764.,  53430.,  54096.,
      55419.,  56094.,  56769.,  57444.,  58812.,  59496.,  60180.,  60864.,
      55869.,  56634.,  57399.,  58164.,  59550.,  60324.,  61098.,  61872.,
      63303.,  64086.,  64869.,  65652.,  67128.,  67920.,  68712.,  69504.,
      58209.,  59010.,  59811.,  60612.,  62034.,  62844.,  63654.,  64464.,
      65931.,  66750.,  67569.,  68388.,  69900.,  70728.,  71556.,  72384.,
      60549.,  61386.,  62223.,  63060.,  64518.,  65364.,  66210.,  67056.,
      68559.,  69414.,  70269.,  71124.,  72672.,  73536.,  74400.,  75264.,
      90969.,  92274.,  93579.,  94884.,  96810.,  98124.,  99438.,  100752.,
      102723., 104046., 105369., 106692., 108708., 110040., 111372., 112704.,
      93309.,  94650.,  95991.,  97332.,  99294.,  100644., 101994., 103344.,
      105351., 106710., 108069., 109428., 111480., 112848., 114216., 115584.,
      95649.,  97026.,  98403.,  99780.,  101778., 103164., 104550., 105936.,
      107979., 109374., 110769., 112164., 114252., 115656., 117060., 118464.,
      102669., 104154., 105639., 107124., 109230., 110724., 112218., 113712.,
      115863., 117366., 118869., 120372., 122568., 124080., 125592., 127104.,
      105009., 106530., 108051., 109572., 111714., 113244., 114774., 116304.,
      118491., 120030., 121569., 123108., 125340., 126888., 128436., 129984.,
      107349., 108906., 110463., 112020., 114198., 115764., 117330., 118896.,
      121119., 122694., 124269., 125844., 128112., 129696., 131280., 132864.,
      114369., 116034., 117699., 119364., 121650., 123324., 124998., 126672.,
      129003., 130686., 132369., 134052., 136428., 138120., 139812., 141504.,
      116709., 118410., 120111., 121812., 124134., 125844., 127554., 129264.,
      131631., 133350., 135069., 136788., 139200., 140928., 142656., 144384.,
      119049., 120786., 122523., 124260., 126618., 128364., 130110., 131856.,
      134259., 136014., 137769., 139524., 141972., 143736., 145500., 147264.,
      126069., 127914., 129759., 131604., 134070., 135924., 137778., 139632.,
      142143., 144006., 145869., 147732., 150288., 152160., 154032., 155904.,
      128409., 130290., 132171., 134052., 136554., 138444., 140334., 142224.,
      144771., 146670., 148569., 150468., 153060., 154968., 156876., 158784.,
      130749., 132666., 134583., 136500., 139038., 140964., 142890., 144816.,
      147399., 149334., 151269., 153204., 155832., 157776., 159720., 161664.,
      161169., 163554., 165939., 168324., 171330., 173724., 176118., 178512.,
      181563., 183966., 186369., 188772., 191868., 194280., 196692., 199104.,
      163509., 165930., 168351., 170772., 173814., 176244., 178674., 181104.,
      184191., 186630., 189069., 191508., 194640., 197088., 199536., 201984.,
      165849., 168306., 170763., 173220., 176298., 178764., 181230., 183696.,
      186819., 189294., 191769., 194244., 197412., 199896., 202380., 204864.,
      172869., 175434., 177999., 180564., 183750., 186324., 188898., 191472.,
      194703., 197286., 199869., 202452., 205728., 208320., 210912., 213504.,
      175209., 177810., 180411., 183012., 186234., 188844., 191454., 194064.,
      197331., 199950., 202569., 205188., 208500., 211128., 213756., 216384.,
      177549., 180186., 182823., 185460., 188718., 191364., 194010., 196656.,
      199959., 202614., 205269., 207924., 211272., 213936., 216600., 219264.,
      184569., 187314., 190059., 192804., 196170., 198924., 201678., 204432.,
      207843., 210606., 213369., 216132., 219588., 222360., 225132., 227904.,
      186909., 189690., 192471., 195252., 198654., 201444., 204234., 207024.,
      210471., 213270., 216069., 218868., 222360., 225168., 227976., 230784.,
      189249., 192066., 194883., 197700., 201138., 203964., 206790., 209616.,
      213099., 215934., 218769., 221604., 225132., 227976., 230820., 233664.,
      196269., 199194., 202119., 205044., 208590., 211524., 214458., 217392.,
      220983., 223926., 226869., 229812., 233448., 236400., 239352., 242304.,
      198609., 201570., 204531., 207492., 211074., 214044., 217014., 219984.,
      223611., 226590., 229569., 232548., 236220., 239208., 242196., 245184.,
      200949., 203946., 206943., 209940., 213558., 216564., 219570., 222576.,
      226239., 229254., 232269., 235284., 238992., 242016., 245040., 248064.};
  const std::array<int, 4> in_shape = {{3, 6, 5, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x6x6x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      145.,  226.,  265.,  304.,  343.,  223.,  321.,  474.,  519.,  564.,
      609.,  384.,  519.,  744.,  789.,  834.,  879.,  546.,  717.,  1014.,
      1059., 1104., 1149., 708.,  915.,  1284., 1329., 1374., 1419., 870.,
      475.,  640.,  661.,  682.,  703.,  409.,  1153., 1630., 1669., 1708.,
      1747., 1087., 1509., 2094., 2139., 2184., 2229., 1356., 1707., 2364.,
      2409., 2454., 2499., 1518., 1905., 2634., 2679., 2724., 2769., 1680.,
      2103., 2904., 2949., 2994., 3039., 1842., 1051., 1396., 1417., 1438.,
      1459., 841.,  2161., 3034., 3073., 3112., 3151., 1951., 2697., 3714.,
      3759., 3804., 3849., 2328., 2895., 3984., 4029., 4074., 4119., 2490.,
      3093., 4254., 4299., 4344., 4389., 2652., 3291., 4524., 4569., 4614.,
      4659., 2814., 1627., 2152., 2173., 2194., 2215., 1273.};
  const std::array<int, 4> in_shape = {{3, 6, 6, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x6x6x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      474.,  519.,  564.,  609.,  744.,  789.,  834.,  879.,  1014., 1059.,
      1104., 1149., 1284., 1329., 1374., 1419., 2094., 2139., 2184., 2229.,
      2364., 2409., 2454., 2499., 2634., 2679., 2724., 2769., 2904., 2949.,
      2994., 3039., 3714., 3759., 3804., 3849., 3984., 4029., 4074., 4119.,
      4254., 4299., 4344., 4389., 4524., 4569., 4614., 4659.};
  const std::array<int, 4> in_shape = {{3, 6, 6, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x6x6x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      272.,  290.,  422.,  452.,  494.,  530.,  566.,  608.,  638.,  686.,
      412.,  446.,  597.,  642.,  876.,  948.,  957.,  1038., 1038., 1128.,
      1119., 1218., 699.,  768.,  957.,  1038., 1362., 1488., 1443., 1578.,
      1524., 1668., 1605., 1758., 987.,  1092., 1317., 1434., 1848., 2028.,
      1929., 2118., 2010., 2208., 2091., 2298., 1275., 1416., 1677., 1830.,
      2334., 2568., 2415., 2658., 2496., 2748., 2577., 2838., 1563., 1740.,
      836.,  950.,  1106., 1280., 1142., 1322., 1178., 1364., 1214., 1406.,
      688.,  818.,  2144., 2306., 3014., 3260., 3086., 3338., 3158., 3416.,
      3230., 3494., 1996., 2174., 2757., 3018., 3792., 4188., 3873., 4278.,
      3954., 4368., 4035., 4458., 2427., 2712., 3117., 3414., 4278., 4728.,
      4359., 4818., 4440., 4908., 4521., 4998., 2715., 3036., 3477., 3810.,
      4764., 5268., 4845., 5358., 4926., 5448., 5007., 5538., 3003., 3360.,
      3837., 4206., 5250., 5808., 5331., 5898., 5412., 5988., 5493., 6078.,
      3291., 3684., 1844., 2102., 2402., 2792., 2438., 2834., 2474., 2876.,
      2510., 2918., 1408., 1682., 4016., 4322., 5606., 6068., 5678., 6146.,
      5750., 6224., 5822., 6302., 3580., 3902., 4917., 5394., 6708., 7428.,
      6789., 7518., 6870., 7608., 6951., 7698., 4155., 4656., 5277., 5790.,
      7194., 7968., 7275., 8058., 7356., 8148., 7437., 8238., 4443., 4980.,
      5637., 6186., 7680., 8508., 7761., 8598., 7842., 8688., 7923., 8778.,
      4731., 5304., 5997., 6582., 8166., 9048., 8247., 9138., 8328., 9228.,
      8409., 9318., 5019., 5628., 2852., 3254., 3698., 4304., 3734., 4346.,
      3770., 4388., 3806., 4430., 2128., 2546.};
  const std::array<int, 4> in_shape = {{3, 6, 6, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x6x6x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      876.,  948.,  957.,  1038., 1038., 1128., 1119., 1218., 1362., 1488.,
      1443., 1578., 1524., 1668., 1605., 1758., 1848., 2028., 1929., 2118.,
      2010., 2208., 2091., 2298., 2334., 2568., 2415., 2658., 2496., 2748.,
      2577., 2838., 3792., 4188., 3873., 4278., 3954., 4368., 4035., 4458.,
      4278., 4728., 4359., 4818., 4440., 4908., 4521., 4998., 4764., 5268.,
      4845., 5358., 4926., 5448., 5007., 5538., 5250., 5808., 5331., 5898.,
      5412., 5988., 5493., 6078., 6708., 7428., 6789., 7518., 6870., 7608.,
      6951., 7698., 7194., 7968., 7275., 8058., 7356., 8148., 7437., 8238.,
      7680., 8508., 7761., 8598., 7842., 8688., 7923., 8778., 8166., 9048.,
      8247., 9138., 8328., 9228., 8409., 9318.};
  const std::array<int, 4> in_shape = {{3, 6, 6, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x6x6x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      526.,   544.,   562.,   580.,   814.,   844.,   874.,   904.,   952.,
      988.,   1024.,  1060.,  1090.,  1132.,  1174.,  1216.,  1228.,  1276.,
      1324.,  1372.,  790.,   824.,   858.,   892.,   1149.,  1194.,  1239.,
      1284.,  1680.,  1752.,  1824.,  1896.,  1833.,  1914.,  1995.,  2076.,
      1986.,  2076.,  2166.,  2256.,  2139.,  2238.,  2337.,  2436.,  1329.,
      1398.,  1467.,  1536.,  1833.,  1914.,  1995.,  2076.,  2598.,  2724.,
      2850.,  2976.,  2751.,  2886.,  3021.,  3156.,  2904.,  3048.,  3192.,
      3336.,  3057.,  3210.,  3363.,  3516.,  1869.,  1974.,  2079.,  2184.,
      2517.,  2634.,  2751.,  2868.,  3516.,  3696.,  3876.,  4056.,  3669.,
      3858.,  4047.,  4236.,  3822.,  4020.,  4218.,  4416.,  3975.,  4182.,
      4389.,  4596.,  2409.,  2550.,  2691.,  2832.,  3201.,  3354.,  3507.,
      3660.,  4434.,  4668.,  4902.,  5136.,  4587.,  4830.,  5073.,  5316.,
      4740.,  4992.,  5244.,  5496.,  4893.,  5154.,  5415.,  5676.,  2949.,
      3126.,  3303.,  3480.,  1558.,  1672.,  1786.,  1900.,  2038.,  2212.,
      2386.,  2560.,  2104.,  2284.,  2464.,  2644.,  2170.,  2356.,  2542.,
      2728.,  2236.,  2428.,  2620.,  2812.,  1246.,  1376.,  1506.,  1636.,
      4126.,  4288.,  4450.,  4612.,  5782.,  6028.,  6274.,  6520.,  5920.,
      6172.,  6424.,  6676.,  6058.,  6316.,  6574.,  6832.,  6196.,  6460.,
      6724.,  6988.,  3814.,  3992.,  4170.,  4348.,  5253.,  5514.,  5775.,
      6036.,  7188.,  7584.,  7980.,  8376.,  7341.,  7746.,  8151.,  8556.,
      7494.,  7908.,  8322.,  8736.,  7647.,  8070.,  8493.,  8916.,  4569.,
      4854.,  5139.,  5424.,  5937.,  6234.,  6531.,  6828.,  8106.,  8556.,
      9006.,  9456.,  8259.,  8718.,  9177.,  9636.,  8412.,  8880.,  9348.,
      9816.,  8565.,  9042.,  9519.,  9996.,  5109.,  5430.,  5751.,  6072.,
      6621.,  6954.,  7287.,  7620.,  9024.,  9528.,  10032., 10536., 9177.,
      9690.,  10203., 10716., 9330.,  9852.,  10374., 10896., 9483.,  10014.,
      10545., 11076., 5649.,  6006.,  6363.,  6720.,  7305.,  7674.,  8043.,
      8412.,  9942.,  10500., 11058., 11616., 10095., 10662., 11229., 11796.,
      10248., 10824., 11400., 11976., 10401., 10986., 11571., 12156., 6189.,
      6582.,  6975.,  7368.,  3430.,  3688.,  3946.,  4204.,  4414.,  4804.,
      5194.,  5584.,  4480.,  4876.,  5272.,  5668.,  4546.,  4948.,  5350.,
      5752.,  4612.,  5020.,  5428.,  5836.,  2542.,  2816.,  3090.,  3364.,
      7726.,  8032.,  8338.,  8644.,  10750., 11212., 11674., 12136., 10888.,
      11356., 11824., 12292., 11026., 11500., 11974., 12448., 11164., 11644.,
      12124., 12604., 6838.,  7160.,  7482.,  7804.,  9357.,  9834.,  10311.,
      10788., 12696., 13416., 14136., 14856., 12849., 13578., 14307., 15036.,
      13002., 13740., 14478., 15216., 13155., 13902., 14649., 15396., 7809.,
      8310.,  8811.,  9312.,  10041., 10554., 11067., 11580., 13614., 14388.,
      15162., 15936., 13767., 14550., 15333., 16116., 13920., 14712., 15504.,
      16296., 14073., 14874., 15675., 16476., 8349.,  8886.,  9423.,  9960.,
      10725., 11274., 11823., 12372., 14532., 15360., 16188., 17016., 14685.,
      15522., 16359., 17196., 14838., 15684., 16530., 17376., 14991., 15846.,
      16701., 17556., 8889.,  9462.,  10035., 10608., 11409., 11994., 12579.,
      13164., 15450., 16332., 17214., 18096., 15603., 16494., 17385., 18276.,
      15756., 16656., 17556., 18456., 15909., 16818., 17727., 18636., 9429.,
      10038., 10647., 11256., 5302.,  5704.,  6106.,  6508.,  6790.,  7396.,
      8002.,  8608.,  6856.,  7468.,  8080.,  8692.,  6922.,  7540.,  8158.,
      8776.,  6988.,  7612.,  8236.,  8860.,  3838.,  4256.,  4674.,  5092.};
  const std::array<int, 4> in_shape = {{3, 6, 6, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x6x6x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1680.,  1752.,  1824.,  1896.,  1833.,  1914.,  1995.,  2076.,  1986.,
      2076.,  2166.,  2256.,  2139.,  2238.,  2337.,  2436.,  2598.,  2724.,
      2850.,  2976.,  2751.,  2886.,  3021.,  3156.,  2904.,  3048.,  3192.,
      3336.,  3057.,  3210.,  3363.,  3516.,  3516.,  3696.,  3876.,  4056.,
      3669.,  3858.,  4047.,  4236.,  3822.,  4020.,  4218.,  4416.,  3975.,
      4182.,  4389.,  4596.,  4434.,  4668.,  4902.,  5136.,  4587.,  4830.,
      5073.,  5316.,  4740.,  4992.,  5244.,  5496.,  4893.,  5154.,  5415.,
      5676.,  7188.,  7584.,  7980.,  8376.,  7341.,  7746.,  8151.,  8556.,
      7494.,  7908.,  8322.,  8736.,  7647.,  8070.,  8493.,  8916.,  8106.,
      8556.,  9006.,  9456.,  8259.,  8718.,  9177.,  9636.,  8412.,  8880.,
      9348.,  9816.,  8565.,  9042.,  9519.,  9996.,  9024.,  9528.,  10032.,
      10536., 9177.,  9690.,  10203., 10716., 9330.,  9852.,  10374., 10896.,
      9483.,  10014., 10545., 11076., 9942.,  10500., 11058., 11616., 10095.,
      10662., 11229., 11796., 10248., 10824., 11400., 11976., 10401., 10986.,
      11571., 12156., 12696., 13416., 14136., 14856., 12849., 13578., 14307.,
      15036., 13002., 13740., 14478., 15216., 13155., 13902., 14649., 15396.,
      13614., 14388., 15162., 15936., 13767., 14550., 15333., 16116., 13920.,
      14712., 15504., 16296., 14073., 14874., 15675., 16476., 14532., 15360.,
      16188., 17016., 14685., 15522., 16359., 17196., 14838., 15684., 16530.,
      17376., 14991., 15846., 16701., 17556., 15450., 16332., 17214., 18096.,
      15603., 16494., 17385., 18276., 15756., 16656., 17556., 18456., 15909.,
      16818., 17727., 18636.};
  const std::array<int, 4> in_shape = {{3, 6, 6, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x6x6x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      492.,   580.,   772.,   904.,   916.,   1060.,  1060.,  1216.,  1204.,
      1372.,  780.,   892.,   1134.,  1284.,  1671.,  1896.,  1833.,  2076.,
      1995.,  2256.,  2157.,  2436.,  1350.,  1536.,  1854.,  2076.,  2643.,
      2976.,  2805.,  3156.,  2967.,  3336.,  3129.,  3516.,  1926.,  2184.,
      2574.,  2868.,  3615.,  4056.,  3777.,  4236.,  3939.,  4416.,  4101.,
      4596.,  2502.,  2832.,  3294.,  3660.,  4587.,  5136.,  4749.,  5316.,
      4911.,  5496.,  5073.,  5676.,  3078.,  3480.,  1644.,  1900.,  2176.,
      2560.,  2248.,  2644.,  2320.,  2728.,  2392.,  2812.,  1356.,  1636.,
      4236.,  4612.,  5956.,  6520.,  6100.,  6676.,  6244.,  6832.,  6388.,
      6988.,  3948.,  4348.,  5454.,  6036.,  7503.,  8376.,  7665.,  8556.,
      7827.,  8736.,  7989.,  8916.,  4806.,  5424.,  6174.,  6828.,  8475.,
      9456.,  8637.,  9636.,  8799.,  9816.,  8961.,  9996.,  5382.,  6072.,
      6894.,  7620.,  9447.,  10536., 9609.,  10716., 9771.,  10896., 9933.,
      11076., 5958.,  6720.,  7614.,  8412.,  10419., 11616., 10581., 11796.,
      10743., 11976., 10905., 12156., 6534.,  7368.,  3660.,  4204.,  4768.,
      5584.,  4840.,  5668.,  4912.,  5752.,  4984.,  5836.,  2796.,  3364.,
      7980.,  8644.,  11140., 12136., 11284., 12292., 11428., 12448., 11572.,
      12604., 7116.,  7804.,  9774.,  10788., 13335., 14856., 13497., 15036.,
      13659., 15216., 13821., 15396., 8262.,  9312.,  10494., 11580., 14307.,
      15936., 14469., 16116., 14631., 16296., 14793., 16476., 8838.,  9960.,
      11214., 12372., 15279., 17016., 15441., 17196., 15603., 17376., 15765.,
      17556., 9414.,  10608., 11934., 13164., 16251., 18096., 16413., 18276.,
      16575., 18456., 16737., 18636., 9990.,  11256., 5676.,  6508.,  7360.,
      8608.,  7432.,  8692.,  7504.,  8776.,  7576.,  8860.,  4236.,  5092.};
  const std::array<int, 4> in_shape = {{3, 6, 6, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x6x6x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1671.,  1896.,  1833.,  2076.,  1995.,  2256.,  2157.,  2436.,  2643.,
      2976.,  2805.,  3156.,  2967.,  3336.,  3129.,  3516.,  3615.,  4056.,
      3777.,  4236.,  3939.,  4416.,  4101.,  4596.,  4587.,  5136.,  4749.,
      5316.,  4911.,  5496.,  5073.,  5676.,  7503.,  8376.,  7665.,  8556.,
      7827.,  8736.,  7989.,  8916.,  8475.,  9456.,  8637.,  9636.,  8799.,
      9816.,  8961.,  9996.,  9447.,  10536., 9609.,  10716., 9771.,  10896.,
      9933.,  11076., 10419., 11616., 10581., 11796., 10743., 11976., 10905.,
      12156., 13335., 14856., 13497., 15036., 13659., 15216., 13821., 15396.,
      14307., 15936., 14469., 16116., 14631., 16296., 14793., 16476., 15279.,
      17016., 15441., 17196., 15603., 17376., 15765., 17556., 16251., 18096.,
      16413., 18276., 16575., 18456., 16737., 18636.};
  const std::array<int, 4> in_shape = {{3, 6, 6, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x6x6x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      952.,   984.,   1124.,  1160.,  1490.,  1544.,  1748.,  1808.,  1766.,
      1832.,  2048.,  2120.,  2042.,  2120.,  2348.,  2432.,  2318.,  2408.,
      2648.,  2744.,  1496.,  1560.,  1716.,  1784.,  2184.,  2268.,  2478.,
      2568.,  3207.,  3342.,  3648.,  3792.,  3513.,  3666.,  3990.,  4152.,
      3819.,  3990.,  4332.,  4512.,  4125.,  4314.,  4674.,  4872.,  2568.,
      2700.,  2934.,  3072.,  3552.,  3708.,  3990.,  4152.,  5043.,  5286.,
      5700.,  5952.,  5349.,  5610.,  6042.,  6312.,  5655.,  5934.,  6384.,
      6672.,  5961.,  6258.,  6726.,  7032.,  3648.,  3852.,  4158.,  4368.,
      4920.,  5148.,  5502.,  5736.,  6879.,  7230.,  7752.,  8112.,  7185.,
      7554.,  8094.,  8472.,  7491.,  7878.,  8436.,  8832.,  7797.,  8202.,
      8778.,  9192.,  4728.,  5004.,  5382.,  5664.,  6288.,  6588.,  7014.,
      7320.,  8715.,  9174.,  9804.,  10272., 9021.,  9498.,  10146., 10632.,
      9327.,  9822.,  10488., 10992., 9633.,  10146., 10830., 11352., 5808.,
      6156.,  6606.,  6960.,  3064.,  3288.,  3572.,  3800.,  4010.,  4352.,
      4772.,  5120.,  4142.,  4496.,  4928.,  5288.,  4274.,  4640.,  5084.,
      5456.,  4406.,  4784.,  5240.,  5624.,  2456.,  2712.,  3012.,  3272.,
      8152.,  8472.,  8900.,  9224.,  11426., 11912., 12548., 13040., 11702.,
      12200., 12848., 13352., 11978., 12488., 13148., 13664., 12254., 12776.,
      13448., 13976., 7544.,  7896.,  8340.,  8696.,  10392., 10908., 11550.,
      12072., 14223., 15006., 15960., 16752., 14529., 15330., 16302., 17112.,
      14835., 15654., 16644., 17472., 15141., 15978., 16986., 17832., 9048.,
      9612.,  10278., 10848., 11760., 12348., 13062., 13656., 16059., 16950.,
      18012., 18912., 16365., 17274., 18354., 19272., 16671., 17598., 18696.,
      19632., 16977., 17922., 19038., 19992., 10128., 10764., 11502., 12144.,
      13128., 13788., 14574., 15240., 17895., 18894., 20064., 21072., 18201.,
      19218., 20406., 21432., 18507., 19542., 20748., 21792., 18813., 19866.,
      21090., 22152., 11208., 11916., 12726., 13440., 14496., 15228., 16086.,
      16824., 19731., 20838., 22116., 23232., 20037., 21162., 22458., 23592.,
      20343., 21486., 22800., 23952., 20649., 21810., 23142., 24312., 12288.,
      13068., 13950., 14736., 6808.,  7320.,  7892.,  8408.,  8762.,  9536.,
      10388., 11168., 8894.,  9680.,  10544., 11336., 9026.,  9824.,  10700.,
      11504., 9158.,  9968.,  10856., 11672., 5048.,  5592.,  6180.,  6728.,
      15352., 15960., 16676., 17288., 21362., 22280., 23348., 24272., 21638.,
      22568., 23648., 24584., 21914., 22856., 23948., 24896., 22190., 23144.,
      24248., 25208., 13592., 14232., 14964., 15608., 18600., 19548., 20622.,
      21576., 25239., 26670., 28272., 29712., 25545., 26994., 28614., 30072.,
      25851., 27318., 28956., 30432., 26157., 27642., 29298., 30792., 15528.,
      16524., 17622., 18624., 19968., 20988., 22134., 23160., 27075., 28614.,
      30324., 31872., 27381., 28938., 30666., 32232., 27687., 29262., 31008.,
      32592., 27993., 29586., 31350., 32952., 16608., 17676., 18846., 19920.,
      21336., 22428., 23646., 24744., 28911., 30558., 32376., 34032., 29217.,
      30882., 32718., 34392., 29523., 31206., 33060., 34752., 29829., 31530.,
      33402., 35112., 17688., 18828., 20070., 21216., 22704., 23868., 25158.,
      26328., 30747., 32502., 34428., 36192., 31053., 32826., 34770., 36552.,
      31359., 33150., 35112., 36912., 31665., 33474., 35454., 37272., 18768.,
      19980., 21294., 22512., 10552., 11352., 12212., 13016., 13514., 14720.,
      16004., 17216., 13646., 14864., 16160., 17384., 13778., 15008., 16316.,
      17552., 13910., 15152., 16472., 17720., 7640.,  8472.,  9348.,  10184.};
  const std::array<int, 4> in_shape = {{3, 6, 6, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x6x6x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3207.,  3342.,  3648.,  3792.,  3513.,  3666.,  3990.,  4152.,  3819.,
      3990.,  4332.,  4512.,  4125.,  4314.,  4674.,  4872.,  5043.,  5286.,
      5700.,  5952.,  5349.,  5610.,  6042.,  6312.,  5655.,  5934.,  6384.,
      6672.,  5961.,  6258.,  6726.,  7032.,  6879.,  7230.,  7752.,  8112.,
      7185.,  7554.,  8094.,  8472.,  7491.,  7878.,  8436.,  8832.,  7797.,
      8202.,  8778.,  9192.,  8715.,  9174.,  9804.,  10272., 9021.,  9498.,
      10146., 10632., 9327.,  9822.,  10488., 10992., 9633.,  10146., 10830.,
      11352., 14223., 15006., 15960., 16752., 14529., 15330., 16302., 17112.,
      14835., 15654., 16644., 17472., 15141., 15978., 16986., 17832., 16059.,
      16950., 18012., 18912., 16365., 17274., 18354., 19272., 16671., 17598.,
      18696., 19632., 16977., 17922., 19038., 19992., 17895., 18894., 20064.,
      21072., 18201., 19218., 20406., 21432., 18507., 19542., 20748., 21792.,
      18813., 19866., 21090., 22152., 19731., 20838., 22116., 23232., 20037.,
      21162., 22458., 23592., 20343., 21486., 22800., 23952., 20649., 21810.,
      23142., 24312., 25239., 26670., 28272., 29712., 25545., 26994., 28614.,
      30072., 25851., 27318., 28956., 30432., 26157., 27642., 29298., 30792.,
      27075., 28614., 30324., 31872., 27381., 28938., 30666., 32232., 27687.,
      29262., 31008., 32592., 27993., 29586., 31350., 32952., 28911., 30558.,
      32376., 34032., 29217., 30882., 32718., 34392., 29523., 31206., 33060.,
      34752., 29829., 31530., 33402., 35112., 30747., 32502., 34428., 36192.,
      31053., 32826., 34770., 36552., 31359., 33150., 35112., 36912., 31665.,
      33474., 35454., 37272.};
  const std::array<int, 4> in_shape = {{3, 6, 6, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x6x6x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1872.,  1904.,  1936.,  1968.,  2212.,  2248.,  2284.,  2320.,  2926.,
      2980.,  3034.,  3088.,  3436.,  3496.,  3556.,  3616.,  3466.,  3532.,
      3598.,  3664.,  4024.,  4096.,  4168.,  4240.,  4006.,  4084.,  4162.,
      4240.,  4612.,  4696.,  4780.,  4864.,  4546.,  4636.,  4726.,  4816.,
      5200.,  5296.,  5392.,  5488.,  2928.,  2992.,  3056.,  3120.,  3364.,
      3432.,  3500.,  3568.,  4284.,  4368.,  4452.,  4536.,  4866.,  4956.,
      5046.,  5136.,  6279.,  6414.,  6549.,  6684.,  7152.,  7296.,  7440.,
      7584.,  6873.,  7026.,  7179.,  7332.,  7818.,  7980.,  8142.,  8304.,
      7467.,  7638.,  7809.,  7980.,  8484.,  8664.,  8844.,  9024.,  8061.,
      8250.,  8439.,  8628.,  9150.,  9348.,  9546.,  9744.,  5004.,  5136.,
      5268.,  5400.,  5730.,  5868.,  6006.,  6144.,  6948.,  7104.,  7260.,
      7416.,  7818.,  7980.,  8142.,  8304.,  9843.,  10086., 10329., 10572.,
      11148., 11400., 11652., 11904., 10437., 10698., 10959., 11220., 11814.,
      12084., 12354., 12624., 11031., 11310., 11589., 11868., 12480., 12768.,
      13056., 13344., 11625., 11922., 12219., 12516., 13146., 13452., 13758.,
      14064., 7092.,  7296.,  7500.,  7704.,  8106.,  8316.,  8526.,  8736.,
      9612.,  9840.,  10068., 10296., 10770., 11004., 11238., 11472., 13407.,
      13758., 14109., 14460., 15144., 15504., 15864., 16224., 14001., 14370.,
      14739., 15108., 15810., 16188., 16566., 16944., 14595., 14982., 15369.,
      15756., 16476., 16872., 17268., 17664., 15189., 15594., 15999., 16404.,
      17142., 17556., 17970., 18384., 9180.,  9456.,  9732.,  10008., 10482.,
      10764., 11046., 11328., 12276., 12576., 12876., 13176., 13722., 14028.,
      14334., 14640., 16971., 17430., 17889., 18348., 19140., 19608., 20076.,
      20544., 17565., 18042., 18519., 18996., 19806., 20292., 20778., 21264.,
      18159., 18654., 19149., 19644., 20472., 20976., 21480., 21984., 18753.,
      19266., 19779., 20292., 21138., 21660., 22182., 22704., 11268., 11616.,
      11964., 12312., 12858., 13212., 13566., 13920., 5904.,  6128.,  6352.,
      6576.,  6916.,  7144.,  7372.,  7600.,  7678.,  8020.,  8362.,  8704.,
      9196.,  9544.,  9892.,  10240., 7930.,  8284.,  8638.,  8992.,  9496.,
      9856.,  10216., 10576., 8182.,  8548.,  8914.,  9280.,  9796.,  10168.,
      10540., 10912., 8434.,  8812.,  9190.,  9568.,  10096., 10480., 10864.,
      11248., 4656.,  4912.,  5168.,  5424.,  5764.,  6024.,  6284.,  6544.,
      15984., 16304., 16624., 16944., 17476., 17800., 18124., 18448., 22366.,
      22852., 23338., 23824., 24604., 25096., 25588., 26080., 22906., 23404.,
      23902., 24400., 25192., 25696., 26200., 26704., 23446., 23956., 24466.,
      24976., 25780., 26296., 26812., 27328., 23986., 24508., 25030., 25552.,
      26368., 26896., 27424., 27952., 14736., 15088., 15440., 15792., 16324.,
      16680., 17036., 17392., 20268., 20784., 21300., 21816., 22578., 23100.,
      23622., 24144., 27663., 28446., 29229., 30012., 31128., 31920., 32712.,
      33504., 28257., 29058., 29859., 30660., 31794., 32604., 33414., 34224.,
      28851., 29670., 30489., 31308., 32460., 33288., 34116., 34944., 29445.,
      30282., 31119., 31956., 33126., 33972., 34818., 35664., 17532., 18096.,
      18660., 19224., 19986., 20556., 21126., 21696., 22932., 23520., 24108.,
      24696., 25530., 26124., 26718., 27312., 31227., 32118., 33009., 33900.,
      35124., 36024., 36924., 37824., 31821., 32730., 33639., 34548., 35790.,
      36708., 37626., 38544., 32415., 33342., 34269., 35196., 36456., 37392.,
      38328., 39264., 33009., 33954., 34899., 35844., 37122., 38076., 39030.,
      39984., 19620., 20256., 20892., 21528., 22362., 23004., 23646., 24288.,
      25596., 26256., 26916., 27576., 28482., 29148., 29814., 30480., 34791.,
      35790., 36789., 37788., 39120., 40128., 41136., 42144., 35385., 36402.,
      37419., 38436., 39786., 40812., 41838., 42864., 35979., 37014., 38049.,
      39084., 40452., 41496., 42540., 43584., 36573., 37626., 38679., 39732.,
      41118., 42180., 43242., 44304., 21708., 22416., 23124., 23832., 24738.,
      25452., 26166., 26880., 28260., 28992., 29724., 30456., 31434., 32172.,
      32910., 33648., 38355., 39462., 40569., 41676., 43116., 44232., 45348.,
      46464., 38949., 40074., 41199., 42324., 43782., 44916., 46050., 47184.,
      39543., 40686., 41829., 42972., 44448., 45600., 46752., 47904., 40137.,
      41298., 42459., 43620., 45114., 46284., 47454., 48624., 23796., 24576.,
      25356., 26136., 27114., 27900., 28686., 29472., 13104., 13616., 14128.,
      14640., 15268., 15784., 16300., 16816., 16750., 17524., 18298., 19072.,
      19996., 20776., 21556., 22336., 17002., 17788., 18574., 19360., 20296.,
      21088., 21880., 22672., 17254., 18052., 18850., 19648., 20596., 21400.,
      22204., 23008., 17506., 18316., 19126., 19936., 20896., 21712., 22528.,
      23344., 9552.,  10096., 10640., 11184., 11812., 12360., 12908., 13456.,
      30096., 30704., 31312., 31920., 32740., 33352., 33964., 34576., 41806.,
      42724., 43642., 44560., 45772., 46696., 47620., 48544., 42346., 43276.,
      44206., 45136., 46360., 47296., 48232., 49168., 42886., 43828., 44770.,
      45712., 46948., 47896., 48844., 49792., 43426., 44380., 45334., 46288.,
      47536., 48496., 49456., 50416., 26544., 27184., 27824., 28464., 29284.,
      29928., 30572., 31216., 36252., 37200., 38148., 39096., 40290., 41244.,
      42198., 43152., 49047., 50478., 51909., 53340., 55104., 56544., 57984.,
      59424., 49641., 51090., 52539., 53988., 55770., 57228., 58686., 60144.,
      50235., 51702., 53169., 54636., 56436., 57912., 59388., 60864., 50829.,
      52314., 53799., 55284., 57102., 58596., 60090., 61584., 30060., 31056.,
      32052., 33048., 34242., 35244., 36246., 37248., 38916., 39936., 40956.,
      41976., 43242., 44268., 45294., 46320., 52611., 54150., 55689., 57228.,
      59100., 60648., 62196., 63744., 53205., 54762., 56319., 57876., 59766.,
      61332., 62898., 64464., 53799., 55374., 56949., 58524., 60432., 62016.,
      63600., 65184., 54393., 55986., 57579., 59172., 61098., 62700., 64302.,
      65904., 32148., 33216., 34284., 35352., 36618., 37692., 38766., 39840.,
      41580., 42672., 43764., 44856., 46194., 47292., 48390., 49488., 56175.,
      57822., 59469., 61116., 63096., 64752., 66408., 68064., 56769., 58434.,
      60099., 61764., 63762., 65436., 67110., 68784., 57363., 59046., 60729.,
      62412., 64428., 66120., 67812., 69504., 57957., 59658., 61359., 63060.,
      65094., 66804., 68514., 70224., 34236., 35376., 36516., 37656., 38994.,
      40140., 41286., 42432., 44244., 45408., 46572., 47736., 49146., 50316.,
      51486., 52656., 59739., 61494., 63249., 65004., 67092., 68856., 70620.,
      72384., 60333., 62106., 63879., 65652., 67758., 69540., 71322., 73104.,
      60927., 62718., 64509., 66300., 68424., 70224., 72024., 73824., 61521.,
      63330., 65139., 66948., 69090., 70908., 72726., 74544., 36324., 37536.,
      38748., 39960., 41370., 42588., 43806., 45024., 20304., 21104., 21904.,
      22704., 23620., 24424., 25228., 26032., 25822., 27028., 28234., 29440.,
      30796., 32008., 33220., 34432., 26074., 27292., 28510., 29728., 31096.,
      32320., 33544., 34768., 26326., 27556., 28786., 30016., 31396., 32632.,
      33868., 35104., 26578., 27820., 29062., 30304., 31696., 32944., 34192.,
      35440., 14448., 15280., 16112., 16944., 17860., 18696., 19532., 20368.};
  const std::array<int, 4> in_shape = {{3, 6, 6, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x6x6x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6279.,  6414.,  6549.,  6684.,  7152.,  7296.,  7440.,  7584.,  6873.,
      7026.,  7179.,  7332.,  7818.,  7980.,  8142.,  8304.,  7467.,  7638.,
      7809.,  7980.,  8484.,  8664.,  8844.,  9024.,  8061.,  8250.,  8439.,
      8628.,  9150.,  9348.,  9546.,  9744.,  9843.,  10086., 10329., 10572.,
      11148., 11400., 11652., 11904., 10437., 10698., 10959., 11220., 11814.,
      12084., 12354., 12624., 11031., 11310., 11589., 11868., 12480., 12768.,
      13056., 13344., 11625., 11922., 12219., 12516., 13146., 13452., 13758.,
      14064., 13407., 13758., 14109., 14460., 15144., 15504., 15864., 16224.,
      14001., 14370., 14739., 15108., 15810., 16188., 16566., 16944., 14595.,
      14982., 15369., 15756., 16476., 16872., 17268., 17664., 15189., 15594.,
      15999., 16404., 17142., 17556., 17970., 18384., 16971., 17430., 17889.,
      18348., 19140., 19608., 20076., 20544., 17565., 18042., 18519., 18996.,
      19806., 20292., 20778., 21264., 18159., 18654., 19149., 19644., 20472.,
      20976., 21480., 21984., 18753., 19266., 19779., 20292., 21138., 21660.,
      22182., 22704., 27663., 28446., 29229., 30012., 31128., 31920., 32712.,
      33504., 28257., 29058., 29859., 30660., 31794., 32604., 33414., 34224.,
      28851., 29670., 30489., 31308., 32460., 33288., 34116., 34944., 29445.,
      30282., 31119., 31956., 33126., 33972., 34818., 35664., 31227., 32118.,
      33009., 33900., 35124., 36024., 36924., 37824., 31821., 32730., 33639.,
      34548., 35790., 36708., 37626., 38544., 32415., 33342., 34269., 35196.,
      36456., 37392., 38328., 39264., 33009., 33954., 34899., 35844., 37122.,
      38076., 39030., 39984., 34791., 35790., 36789., 37788., 39120., 40128.,
      41136., 42144., 35385., 36402., 37419., 38436., 39786., 40812., 41838.,
      42864., 35979., 37014., 38049., 39084., 40452., 41496., 42540., 43584.,
      36573., 37626., 38679., 39732., 41118., 42180., 43242., 44304., 38355.,
      39462., 40569., 41676., 43116., 44232., 45348., 46464., 38949., 40074.,
      41199., 42324., 43782., 44916., 46050., 47184., 39543., 40686., 41829.,
      42972., 44448., 45600., 46752., 47904., 40137., 41298., 42459., 43620.,
      45114., 46284., 47454., 48624., 49047., 50478., 51909., 53340., 55104.,
      56544., 57984., 59424., 49641., 51090., 52539., 53988., 55770., 57228.,
      58686., 60144., 50235., 51702., 53169., 54636., 56436., 57912., 59388.,
      60864., 50829., 52314., 53799., 55284., 57102., 58596., 60090., 61584.,
      52611., 54150., 55689., 57228., 59100., 60648., 62196., 63744., 53205.,
      54762., 56319., 57876., 59766., 61332., 62898., 64464., 53799., 55374.,
      56949., 58524., 60432., 62016., 63600., 65184., 54393., 55986., 57579.,
      59172., 61098., 62700., 64302., 65904., 56175., 57822., 59469., 61116.,
      63096., 64752., 66408., 68064., 56769., 58434., 60099., 61764., 63762.,
      65436., 67110., 68784., 57363., 59046., 60729., 62412., 64428., 66120.,
      67812., 69504., 57957., 59658., 61359., 63060., 65094., 66804., 68514.,
      70224., 59739., 61494., 63249., 65004., 67092., 68856., 70620., 72384.,
      60333., 62106., 63879., 65652., 67758., 69540., 71322., 73104., 60927.,
      62718., 64509., 66300., 68424., 70224., 72024., 73824., 61521., 63330.,
      65139., 66948., 69090., 70908., 72726., 74544.};
  const std::array<int, 4> in_shape = {{3, 6, 6, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x6x6x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1804.,  1968.,  2140.,  2320.,  2842.,  3088.,  3346.,  3616.,  3394.,
      3664.,  3946.,  4240.,  3946.,  4240.,  4546.,  4864.,  4498.,  4816.,
      5146.,  5488.,  2908.,  3120.,  3340.,  3568.,  4254.,  4536.,  4830.,
      5136.,  6261.,  6684.,  7125.,  7584.,  6873.,  7332.,  7809.,  8304.,
      7485.,  7980.,  8493.,  9024.,  8097.,  8628.,  9177.,  9744.,  5046.,
      5400.,  5766.,  6144.,  6990.,  7416.,  7854.,  8304.,  9933.,  10572.,
      11229., 11904., 10545., 11220., 11913., 12624., 11157., 11868., 12597.,
      13344., 11769., 12516., 13281., 14064., 7206.,  7704.,  8214.,  8736.,
      9726.,  10296., 10878., 11472., 13605., 14460., 15333., 16224., 14217.,
      15108., 16017., 16944., 14829., 15756., 16701., 17664., 15441., 16404.,
      17385., 18384., 9366.,  10008., 10662., 11328., 12462., 13176., 13902.,
      14640., 17277., 18348., 19437., 20544., 17889., 18996., 20121., 21264.,
      18501., 19644., 20805., 21984., 19113., 20292., 21489., 22704., 11526.,
      12312., 13110., 13920., 6076.,  6576.,  7084.,  7600.,  7954.,  8704.,
      9466.,  10240., 8218.,  8992.,  9778.,  10576., 8482.,  9280.,  10090.,
      10912., 8746.,  9568.,  10402., 11248., 4876.,  5424.,  5980.,  6544.,
      16204., 16944., 17692., 18448., 22714., 23824., 24946., 26080., 23266.,
      24400., 25546., 26704., 23818., 24976., 26146., 27328., 24370., 25552.,
      26746., 27952., 15004., 15792., 16588., 17392., 20670., 21816., 22974.,
      24144., 28293., 30012., 31749., 33504., 28905., 30660., 32433., 34224.,
      29517., 31308., 33117., 34944., 30129., 31956., 33801., 35664., 18006.,
      19224., 20454., 21696., 23406., 24696., 25998., 27312., 31965., 33900.,
      35853., 37824., 32577., 34548., 36537., 38544., 33189., 35196., 37221.,
      39264., 33801., 35844., 37905., 39984., 20166., 21528., 22902., 24288.,
      26142., 27576., 29022., 30480., 35637., 37788., 39957., 42144., 36249.,
      38436., 40641., 42864., 36861., 39084., 41325., 43584., 37473., 39732.,
      42009., 44304., 22326., 23832., 25350., 26880., 28878., 30456., 32046.,
      33648., 39309., 41676., 44061., 46464., 39921., 42324., 44745., 47184.,
      40533., 42972., 45429., 47904., 41145., 43620., 46113., 48624., 24486.,
      26136., 27798., 29472., 13564., 14640., 15724., 16816., 17458., 19072.,
      20698., 22336., 17722., 19360., 21010., 22672., 17986., 19648., 21322.,
      23008., 18250., 19936., 21634., 23344., 10060., 11184., 12316., 13456.,
      30604., 31920., 33244., 34576., 42586., 44560., 46546., 48544., 43138.,
      45136., 47146., 49168., 43690., 45712., 47746., 49792., 44242., 46288.,
      48346., 50416., 27100., 28464., 29836., 31216., 37086., 39096., 41118.,
      43152., 50325., 53340., 56373., 59424., 50937., 53988., 57057., 60144.,
      51549., 54636., 57741., 60864., 52161., 55284., 58425., 61584., 30966.,
      33048., 35142., 37248., 39822., 41976., 44142., 46320., 53997., 57228.,
      60477., 63744., 54609., 57876., 61161., 64464., 55221., 58524., 61845.,
      65184., 55833., 59172., 62529., 65904., 33126., 35352., 37590., 39840.,
      42558., 44856., 47166., 49488., 57669., 61116., 64581., 68064., 58281.,
      61764., 65265., 68784., 58893., 62412., 65949., 69504., 59505., 63060.,
      66633., 70224., 35286., 37656., 40038., 42432., 45294., 47736., 50190.,
      52656., 61341., 65004., 68685., 72384., 61953., 65652., 69369., 73104.,
      62565., 66300., 70053., 73824., 63177., 66948., 70737., 74544., 37446.,
      39960., 42486., 45024., 21052., 22704., 24364., 26032., 26962., 29440.,
      31930., 34432., 27226., 29728., 32242., 34768., 27490., 30016., 32554.,
      35104., 27754., 30304., 32866., 35440., 15244., 16944., 18652., 20368.};
  const std::array<int, 4> in_shape = {{3, 6, 6, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x6x6x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6261.,  6684.,  7125.,  7584.,  6873.,  7332.,  7809.,  8304.,  7485.,
      7980.,  8493.,  9024.,  8097.,  8628.,  9177.,  9744.,  9933.,  10572.,
      11229., 11904., 10545., 11220., 11913., 12624., 11157., 11868., 12597.,
      13344., 11769., 12516., 13281., 14064., 13605., 14460., 15333., 16224.,
      14217., 15108., 16017., 16944., 14829., 15756., 16701., 17664., 15441.,
      16404., 17385., 18384., 17277., 18348., 19437., 20544., 17889., 18996.,
      20121., 21264., 18501., 19644., 20805., 21984., 19113., 20292., 21489.,
      22704., 28293., 30012., 31749., 33504., 28905., 30660., 32433., 34224.,
      29517., 31308., 33117., 34944., 30129., 31956., 33801., 35664., 31965.,
      33900., 35853., 37824., 32577., 34548., 36537., 38544., 33189., 35196.,
      37221., 39264., 33801., 35844., 37905., 39984., 35637., 37788., 39957.,
      42144., 36249., 38436., 40641., 42864., 36861., 39084., 41325., 43584.,
      37473., 39732., 42009., 44304., 39309., 41676., 44061., 46464., 39921.,
      42324., 44745., 47184., 40533., 42972., 45429., 47904., 41145., 43620.,
      46113., 48624., 50325., 53340., 56373., 59424., 50937., 53988., 57057.,
      60144., 51549., 54636., 57741., 60864., 52161., 55284., 58425., 61584.,
      53997., 57228., 60477., 63744., 54609., 57876., 61161., 64464., 55221.,
      58524., 61845., 65184., 55833., 59172., 62529., 65904., 57669., 61116.,
      64581., 68064., 58281., 61764., 65265., 68784., 58893., 62412., 65949.,
      69504., 59505., 63060., 66633., 70224., 61341., 65004., 68685., 72384.,
      61953., 65652., 69369., 73104., 62565., 66300., 70053., 73824., 63177.,
      66948., 70737., 74544.};
  const std::array<int, 4> in_shape = {{3, 6, 6, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x6x6x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3548.,   3608.,   3872.,   3936.,   4212.,   4280.,   4568.,   4640.,
      5582.,   5684.,   6068.,   6176.,   6578.,   6692.,   7112.,   7232.,
      6662.,   6788.,   7196.,   7328.,   7754.,   7892.,   8336.,   8480.,
      7742.,   7892.,   8324.,   8480.,   8930.,   9092.,   9560.,   9728.,
      8822.,   8996.,   9452.,   9632.,   10106.,  10292.,  10784.,  10976.,
      5692.,   5816.,   6112.,   6240.,   6548.,   6680.,   7000.,   7136.,
      8346.,   8508.,   8904.,   9072.,   9486.,   9660.,   10092.,  10272.,
      12261.,  12522.,  13098.,  13368.,  13971.,  14250.,  14880.,  15168.,
      13449.,  13746.,  14358.,  14664.,  15303.,  15618.,  16284.,  16608.,
      14637.,  14970.,  15618.,  15960.,  16635.,  16986.,  17688.,  18048.,
      15825.,  16194.,  16878.,  17256.,  17967.,  18354.,  19092.,  19488.,
      9834.,   10092.,  10536.,  10800.,  11262.,  11532.,  12012.,  12288.,
      13674.,  13980.,  14520.,  14832.,  15390.,  15708.,  16284.,  16608.,
      19389.,  19866.,  20658.,  21144.,  21963.,  22458.,  23304.,  23808.,
      20577.,  21090.,  21918.,  22440.,  23295.,  23826.,  24708.,  25248.,
      21765.,  22314.,  23178.,  23736.,  24627.,  25194.,  26112.,  26688.,
      22953.,  23538.,  24438.,  25032.,  25959.,  26562.,  27516.,  28128.,
      14010.,  14412.,  15000.,  15408.,  16014.,  16428.,  17052.,  17472.,
      19002.,  19452.,  20136.,  20592.,  21294.,  21756.,  22476.,  22944.,
      26517.,  27210.,  28218.,  28920.,  29955.,  30666.,  31728.,  32448.,
      27705.,  28434.,  29478.,  30216.,  31287.,  32034.,  33132.,  33888.,
      28893.,  29658.,  30738.,  31512.,  32619.,  33402.,  34536.,  35328.,
      30081.,  30882.,  31998.,  32808.,  33951.,  34770.,  35940.,  36768.,
      18186.,  18732.,  19464.,  20016.,  20766.,  21324.,  22092.,  22656.,
      24330.,  24924.,  25752.,  26352.,  27198.,  27804.,  28668.,  29280.,
      33645.,  34554.,  35778.,  36696.,  37947.,  38874.,  40152.,  41088.,
      34833.,  35778.,  37038.,  37992.,  39279.,  40242.,  41556.,  42528.,
      36021.,  37002.,  38298.,  39288.,  40611.,  41610.,  42960.,  43968.,
      37209.,  38226.,  39558.,  40584.,  41943.,  42978.,  44364.,  45408.,
      22362.,  23052.,  23928.,  24624.,  25518.,  26220.,  27132.,  27840.,
      11708.,  12152.,  12704.,  13152.,  13716.,  14168.,  14744.,  15200.,
      15230.,  15908.,  16724.,  17408.,  18242.,  18932.,  19784.,  20480.,
      15734.,  16436.,  17276.,  17984.,  18842.,  19556.,  20432.,  21152.,
      16238.,  16964.,  17828.,  18560.,  19442.,  20180.,  21080.,  21824.,
      16742.,  17492.,  18380.,  19136.,  20042.,  20804.,  21728.,  22496.,
      9244.,   9752.,   10336.,  10848.,  11444.,  11960.,  12568.,  13088.,
      31772.,  32408.,  33248.,  33888.,  34740.,  35384.,  36248.,  36896.,
      44462.,  45428.,  46676.,  47648.,  48914.,  49892.,  51176.,  52160.,
      45542.,  46532.,  47804.,  48800.,  50090.,  51092.,  52400.,  53408.,
      46622.,  47636.,  48932.,  49952.,  51266.,  52292.,  53624.,  54656.,
      47702.,  48740.,  50060.,  51104.,  52442.,  53492.,  54848.,  55904.,
      29308.,  30008.,  30880.,  31584.,  32468.,  33176.,  34072.,  34784.,
      40314.,  41340.,  42600.,  43632.,  44910.,  45948.,  47244.,  48288.,
      55029.,  56586.,  58458.,  60024.,  61923.,  63498.,  65424.,  67008.,
      56217.,  57810.,  59718.,  61320.,  63255.,  64866.,  66828.,  68448.,
      57405.,  59034.,  60978.,  62616.,  64587.,  66234.,  68232.,  69888.,
      58593.,  60258.,  62238.,  63912.,  65919.,  67602.,  69636.,  71328.,
      34890.,  36012.,  37320.,  38448.,  39774.,  40908.,  42252.,  43392.,
      45642.,  46812.,  48216.,  49392.,  50814.,  51996.,  53436.,  54624.,
      62157.,  63930.,  66018.,  67800.,  69915.,  71706.,  73848.,  75648.,
      63345.,  65154.,  67278.,  69096.,  71247.,  73074.,  75252.,  77088.,
      64533.,  66378.,  68538.,  70392.,  72579.,  74442.,  76656.,  78528.,
      65721.,  67602.,  69798.,  71688.,  73911.,  75810.,  78060.,  79968.,
      39066.,  40332.,  41784.,  43056.,  44526.,  45804.,  47292.,  48576.,
      50970.,  52284.,  53832.,  55152.,  56718.,  58044.,  59628.,  60960.,
      69285.,  71274.,  73578.,  75576.,  77907.,  79914.,  82272.,  84288.,
      70473.,  72498.,  74838.,  76872.,  79239.,  81282.,  83676.,  85728.,
      71661.,  73722.,  76098.,  78168.,  80571.,  82650.,  85080.,  87168.,
      72849.,  74946.,  77358.,  79464.,  81903.,  84018.,  86484.,  88608.,
      43242.,  44652.,  46248.,  47664.,  49278.,  50700.,  52332.,  53760.,
      56298.,  57756.,  59448.,  60912.,  62622.,  64092.,  65820.,  67296.,
      76413.,  78618.,  81138.,  83352.,  85899.,  88122.,  90696.,  92928.,
      77601.,  79842.,  82398.,  84648.,  87231.,  89490.,  92100.,  94368.,
      78789.,  81066.,  83658.,  85944.,  88563.,  90858.,  93504.,  95808.,
      79977.,  82290.,  84918.,  87240.,  89895.,  92226.,  94908.,  97248.,
      47418.,  48972.,  50712.,  52272.,  54030.,  55596.,  57372.,  58944.,
      26108.,  27128.,  28256.,  29280.,  30420.,  31448.,  32600.,  33632.,
      33374.,  34916.,  36596.,  38144.,  39842.,  41396.,  43112.,  44672.,
      33878.,  35444.,  37148.,  38720.,  40442.,  42020.,  43760.,  45344.,
      34382.,  35972.,  37700.,  39296.,  41042.,  42644.,  44408.,  46016.,
      34886.,  36500.,  38252.,  39872.,  41642.,  43268.,  45056.,  46688.,
      19036.,  20120.,  21280.,  22368.,  23540.,  24632.,  25816.,  26912.,
      59996.,  61208.,  62624.,  63840.,  65268.,  66488.,  67928.,  69152.,
      83342.,  85172.,  87284.,  89120.,  91250.,  93092.,  95240.,  97088.,
      84422.,  86276.,  88412.,  90272.,  92426.,  94292.,  96464.,  98336.,
      85502.,  87380.,  89540.,  91424.,  93602.,  95492.,  97688.,  99584.,
      86582.,  88484.,  90668.,  92576.,  94778.,  96692.,  98912.,  100832.,
      52924.,  54200.,  55648.,  56928.,  58388.,  59672.,  61144.,  62432.,
      72282.,  74172.,  76296.,  78192.,  80334.,  82236.,  84396.,  86304.,
      97797.,  100650., 103818., 106680., 109875., 112746., 115968., 118848.,
      98985.,  101874., 105078., 107976., 111207., 114114., 117372., 120288.,
      100173., 103098., 106338., 109272., 112539., 115482., 118776., 121728.,
      101361., 104322., 107598., 110568., 113871., 116850., 120180., 123168.,
      59946.,  61932.,  64104.,  66096.,  68286.,  70284.,  72492.,  74496.,
      77610.,  79644.,  81912.,  83952.,  86238.,  88284.,  90588.,  92640.,
      104925., 107994., 111378., 114456., 117867., 120954., 124392., 127488.,
      106113., 109218., 112638., 115752., 119199., 122322., 125796., 128928.,
      107301., 110442., 113898., 117048., 120531., 123690., 127200., 130368.,
      108489., 111666., 115158., 118344., 121863., 125058., 128604., 131808.,
      64122.,  66252.,  68568.,  70704.,  73038.,  75180.,  77532.,  79680.,
      82938.,  85116.,  87528.,  89712.,  92142.,  94332.,  96780.,  98976.,
      112053., 115338., 118938., 122232., 125859., 129162., 132816., 136128.,
      113241., 116562., 120198., 123528., 127191., 130530., 134220., 137568.,
      114429., 117786., 121458., 124824., 128523., 131898., 135624., 139008.,
      115617., 119010., 122718., 126120., 129855., 133266., 137028., 140448.,
      68298.,  70572.,  73032.,  75312.,  77790.,  80076.,  82572.,  84864.,
      88266.,  90588.,  93144.,  95472.,  98046.,  100380., 102972., 105312.,
      119181., 122682., 126498., 130008., 133851., 137370., 141240., 144768.,
      120369., 123906., 127758., 131304., 135183., 138738., 142644., 146208.,
      121557., 125130., 129018., 132600., 136515., 140106., 144048., 147648.,
      122745., 126354., 130278., 133896., 137847., 141474., 145452., 149088.,
      72474.,  74892.,  77496.,  79920.,  82542.,  84972.,  87612.,  90048.,
      40508.,  42104.,  43808.,  45408.,  47124.,  48728.,  50456.,  52064.,
      51518.,  53924.,  56468.,  58880.,  61442.,  63860.,  66440.,  68864.,
      52022.,  54452.,  57020.,  59456.,  62042.,  64484.,  67088.,  69536.,
      52526.,  54980.,  57572.,  60032.,  62642.,  65108.,  67736.,  70208.,
      53030.,  55508.,  58124.,  60608.,  63242.,  65732.,  68384.,  70880.,
      28828.,  30488.,  32224.,  33888.,  35636.,  37304.,  39064.,  40736.};
  const std::array<int, 4> in_shape = {{3, 6, 6, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x6x6x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      12261.,  12522.,  13098.,  13368.,  13971.,  14250.,  14880.,  15168.,
      13449.,  13746.,  14358.,  14664.,  15303.,  15618.,  16284.,  16608.,
      14637.,  14970.,  15618.,  15960.,  16635.,  16986.,  17688.,  18048.,
      15825.,  16194.,  16878.,  17256.,  17967.,  18354.,  19092.,  19488.,
      19389.,  19866.,  20658.,  21144.,  21963.,  22458.,  23304.,  23808.,
      20577.,  21090.,  21918.,  22440.,  23295.,  23826.,  24708.,  25248.,
      21765.,  22314.,  23178.,  23736.,  24627.,  25194.,  26112.,  26688.,
      22953.,  23538.,  24438.,  25032.,  25959.,  26562.,  27516.,  28128.,
      26517.,  27210.,  28218.,  28920.,  29955.,  30666.,  31728.,  32448.,
      27705.,  28434.,  29478.,  30216.,  31287.,  32034.,  33132.,  33888.,
      28893.,  29658.,  30738.,  31512.,  32619.,  33402.,  34536.,  35328.,
      30081.,  30882.,  31998.,  32808.,  33951.,  34770.,  35940.,  36768.,
      33645.,  34554.,  35778.,  36696.,  37947.,  38874.,  40152.,  41088.,
      34833.,  35778.,  37038.,  37992.,  39279.,  40242.,  41556.,  42528.,
      36021.,  37002.,  38298.,  39288.,  40611.,  41610.,  42960.,  43968.,
      37209.,  38226.,  39558.,  40584.,  41943.,  42978.,  44364.,  45408.,
      55029.,  56586.,  58458.,  60024.,  61923.,  63498.,  65424.,  67008.,
      56217.,  57810.,  59718.,  61320.,  63255.,  64866.,  66828.,  68448.,
      57405.,  59034.,  60978.,  62616.,  64587.,  66234.,  68232.,  69888.,
      58593.,  60258.,  62238.,  63912.,  65919.,  67602.,  69636.,  71328.,
      62157.,  63930.,  66018.,  67800.,  69915.,  71706.,  73848.,  75648.,
      63345.,  65154.,  67278.,  69096.,  71247.,  73074.,  75252.,  77088.,
      64533.,  66378.,  68538.,  70392.,  72579.,  74442.,  76656.,  78528.,
      65721.,  67602.,  69798.,  71688.,  73911.,  75810.,  78060.,  79968.,
      69285.,  71274.,  73578.,  75576.,  77907.,  79914.,  82272.,  84288.,
      70473.,  72498.,  74838.,  76872.,  79239.,  81282.,  83676.,  85728.,
      71661.,  73722.,  76098.,  78168.,  80571.,  82650.,  85080.,  87168.,
      72849.,  74946.,  77358.,  79464.,  81903.,  84018.,  86484.,  88608.,
      76413.,  78618.,  81138.,  83352.,  85899.,  88122.,  90696.,  92928.,
      77601.,  79842.,  82398.,  84648.,  87231.,  89490.,  92100.,  94368.,
      78789.,  81066.,  83658.,  85944.,  88563.,  90858.,  93504.,  95808.,
      79977.,  82290.,  84918.,  87240.,  89895.,  92226.,  94908.,  97248.,
      97797.,  100650., 103818., 106680., 109875., 112746., 115968., 118848.,
      98985.,  101874., 105078., 107976., 111207., 114114., 117372., 120288.,
      100173., 103098., 106338., 109272., 112539., 115482., 118776., 121728.,
      101361., 104322., 107598., 110568., 113871., 116850., 120180., 123168.,
      104925., 107994., 111378., 114456., 117867., 120954., 124392., 127488.,
      106113., 109218., 112638., 115752., 119199., 122322., 125796., 128928.,
      107301., 110442., 113898., 117048., 120531., 123690., 127200., 130368.,
      108489., 111666., 115158., 118344., 121863., 125058., 128604., 131808.,
      112053., 115338., 118938., 122232., 125859., 129162., 132816., 136128.,
      113241., 116562., 120198., 123528., 127191., 130530., 134220., 137568.,
      114429., 117786., 121458., 124824., 128523., 131898., 135624., 139008.,
      115617., 119010., 122718., 126120., 129855., 133266., 137028., 140448.,
      119181., 122682., 126498., 130008., 133851., 137370., 141240., 144768.,
      120369., 123906., 127758., 131304., 135183., 138738., 142644., 146208.,
      121557., 125130., 129018., 132600., 136515., 140106., 144048., 147648.,
      122745., 126354., 130278., 133896., 137847., 141474., 145452., 149088.};
  const std::array<int, 4> in_shape = {{3, 6, 6, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, SAME3x6x6x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      7036.,   7096.,   7156.,   7216.,   7680.,   7744.,   7808.,   7872.,
      8356.,   8424.,   8492.,   8560.,   9064.,   9136.,   9208.,   9280.,
      11062.,  11164.,  11266.,  11368.,  12028.,  12136.,  12244.,  12352.,
      13042.,  13156.,  13270.,  13384.,  14104.,  14224.,  14344.,  14464.,
      13198.,  13324.,  13450.,  13576.,  14260.,  14392.,  14524.,  14656.,
      15370.,  15508.,  15646.,  15784.,  16528.,  16672.,  16816.,  16960.,
      15334.,  15484.,  15634.,  15784.,  16492.,  16648.,  16804.,  16960.,
      17698.,  17860.,  18022.,  18184.,  18952.,  19120.,  19288.,  19456.,
      17470.,  17644.,  17818.,  17992.,  18724.,  18904.,  19084.,  19264.,
      20026.,  20212.,  20398.,  20584.,  21376.,  21568.,  21760.,  21952.,
      11260.,  11384.,  11508.,  11632.,  12096.,  12224.,  12352.,  12480.,
      12964.,  13096.,  13228.,  13360.,  13864.,  14000.,  14136.,  14272.,
      16530.,  16692.,  16854.,  17016.,  17640.,  17808.,  17976.,  18144.,
      18798.,  18972.,  19146.,  19320.,  20004.,  20184.,  20364.,  20544.,
      24261.,  24522.,  24783.,  25044.,  25926.,  26196.,  26466.,  26736.,
      27663.,  27942.,  28221.,  28500.,  29472.,  29760.,  30048.,  30336.,
      26601.,  26898.,  27195.,  27492.,  28410.,  28716.,  29022.,  29328.,
      30291.,  30606.,  30921.,  31236.,  32244.,  32568.,  32892.,  33216.,
      28941.,  29274.,  29607.,  29940.,  30894.,  31236.,  31578.,  31920.,
      32919.,  33270.,  33621.,  33972.,  35016.,  35376.,  35736.,  36096.,
      31281.,  31650.,  32019.,  32388.,  33378.,  33756.,  34134.,  34512.,
      35547.,  35934.,  36321.,  36708.,  37788.,  38184.,  38580.,  38976.,
      19410.,  19668.,  19926.,  20184.,  20808.,  21072.,  21336.,  21600.,
      22254.,  22524.,  22794.,  23064.,  23748.,  24024.,  24300.,  24576.,
      27042.,  27348.,  27654.,  27960.,  28728.,  29040.,  29352.,  29664.,
      30462.,  30780.,  31098.,  31416.,  32244.,  32568.,  32892.,  33216.,
      38301.,  38778.,  39255.,  39732.,  40830.,  41316.,  41802.,  42288.,
      43431.,  43926.,  44421.,  44916.,  46104.,  46608.,  47112.,  47616.,
      40641.,  41154.,  41667.,  42180.,  43314.,  43836.,  44358.,  44880.,
      46059.,  46590.,  47121.,  47652.,  48876.,  49416.,  49956.,  50496.,
      42981.,  43530.,  44079.,  44628.,  45798.,  46356.,  46914.,  47472.,
      48687.,  49254.,  49821.,  50388.,  51648.,  52224.,  52800.,  53376.,
      45321.,  45906.,  46491.,  47076.,  48282.,  48876.,  49470.,  50064.,
      51315.,  51918.,  52521.,  53124.,  54420.,  55032.,  55644.,  56256.,
      27618.,  28020.,  28422.,  28824.,  29592.,  30000.,  30408.,  30816.,
      31614.,  32028.,  32442.,  32856.,  33684.,  34104.,  34524.,  34944.,
      37554.,  38004.,  38454.,  38904.,  39816.,  40272.,  40728.,  41184.,
      42126.,  42588.,  43050.,  43512.,  44484.,  44952.,  45420.,  45888.,
      52341.,  53034.,  53727.,  54420.,  55734.,  56436.,  57138.,  57840.,
      59199.,  59910.,  60621.,  61332.,  62736.,  63456.,  64176.,  64896.,
      54681.,  55410.,  56139.,  56868.,  58218.,  58956.,  59694.,  60432.,
      61827.,  62574.,  63321.,  64068.,  65508.,  66264.,  67020.,  67776.,
      57021.,  57786.,  58551.,  59316.,  60702.,  61476.,  62250.,  63024.,
      64455.,  65238.,  66021.,  66804.,  68280.,  69072.,  69864.,  70656.,
      59361.,  60162.,  60963.,  61764.,  63186.,  63996.,  64806.,  65616.,
      67083.,  67902.,  68721.,  69540.,  71052.,  71880.,  72708.,  73536.,
      35826.,  36372.,  36918.,  37464.,  38376.,  38928.,  39480.,  40032.,
      40974.,  41532.,  42090.,  42648.,  43620.,  44184.,  44748.,  45312.,
      48066.,  48660.,  49254.,  49848.,  50904.,  51504.,  52104.,  52704.,
      53790.,  54396.,  55002.,  55608.,  56724.,  57336.,  57948.,  58560.,
      66381.,  67290.,  68199.,  69108.,  70638.,  71556.,  72474.,  73392.,
      74967.,  75894.,  76821.,  77748.,  79368.,  80304.,  81240.,  82176.,
      68721.,  69666.,  70611.,  71556.,  73122.,  74076.,  75030.,  75984.,
      77595.,  78558.,  79521.,  80484.,  82140.,  83112.,  84084.,  85056.,
      71061.,  72042.,  73023.,  74004.,  75606.,  76596.,  77586.,  78576.,
      80223.,  81222.,  82221.,  83220.,  84912.,  85920.,  86928.,  87936.,
      73401.,  74418.,  75435.,  76452.,  78090.,  79116.,  80142.,  81168.,
      82851.,  83886.,  84921.,  85956.,  87684.,  88728.,  89772.,  90816.,
      44034.,  44724.,  45414.,  46104.,  47160.,  47856.,  48552.,  49248.,
      50334.,  51036.,  51738.,  52440.,  53556.,  54264.,  54972.,  55680.,
      22972.,  23416.,  23860.,  24304.,  24960.,  25408.,  25856.,  26304.,
      26980.,  27432.,  27884.,  28336.,  29032.,  29488.,  29944.,  30400.,
      29782.,  30460.,  31138.,  31816.,  32764.,  33448.,  34132.,  34816.,
      35794.,  36484.,  37174.,  37864.,  38872.,  39568.,  40264.,  40960.,
      30766.,  31468.,  32170.,  32872.,  33844.,  34552.,  35260.,  35968.,
      36970.,  37684.,  38398.,  39112.,  40144.,  40864.,  41584.,  42304.,
      31750.,  32476.,  33202.,  33928.,  34924.,  35656.,  36388.,  37120.,
      38146.,  38884.,  39622.,  40360.,  41416.,  42160.,  42904.,  43648.,
      32734.,  33484.,  34234.,  34984.,  36004.,  36760.,  37516.,  38272.,
      39322.,  40084.,  40846.,  41608.,  42688.,  43456.,  44224.,  44992.,
      17980.,  18488.,  18996.,  19504.,  20160.,  20672.,  21184.,  21696.,
      22372.,  22888.,  23404.,  23920.,  24616.,  25136.,  25656.,  26176.,
      62908.,  63544.,  64180.,  64816.,  65856.,  66496.,  67136.,  67776.,
      68836.,  69480.,  70124.,  70768.,  71848.,  72496.,  73144.,  73792.,
      87958.,  88924.,  89890.,  90856.,  92380.,  93352.,  94324.,  95296.,
      96850.,  97828.,  98806.,  99784.,  101368., 102352., 103336., 104320.,
      90094.,  91084.,  92074.,  93064.,  94612.,  95608.,  96604.,  97600.,
      99178.,  100180., 101182., 102184., 103792., 104800., 105808., 106816.,
      92230.,  93244.,  94258.,  95272.,  96844.,  97864.,  98884.,  99904.,
      101506., 102532., 103558., 104584., 106216., 107248., 108280., 109312.,
      94366.,  95404.,  96442.,  97480.,  99076.,  100120., 101164., 102208.,
      103834., 104884., 105934., 106984., 108640., 109696., 110752., 111808.,
      57916.,  58616.,  59316.,  60016.,  61056.,  61760.,  62464.,  63168.,
      64228.,  64936.,  65644.,  66352.,  67432.,  68144.,  68856.,  69568.,
      79602.,  80628.,  81654.,  82680.,  84168.,  85200.,  86232.,  87264.,
      88782.,  89820.,  90858.,  91896.,  93444.,  94488.,  95532.,  96576.,
      108501., 110058., 111615., 113172., 115350., 116916., 118482., 120048.,
      122271., 123846., 125421., 126996., 129264., 130848., 132432., 134016.,
      110841., 112434., 114027., 115620., 117834., 119436., 121038., 122640.,
      124899., 126510., 128121., 129732., 132036., 133656., 135276., 136896.,
      113181., 114810., 116439., 118068., 120318., 121956., 123594., 125232.,
      127527., 129174., 130821., 132468., 134808., 136464., 138120., 139776.,
      115521., 117186., 118851., 120516., 122802., 124476., 126150., 127824.,
      130155., 131838., 133521., 135204., 137580., 139272., 140964., 142656.,
      68658.,  69780.,  70902.,  72024.,  73512.,  74640.,  75768.,  76896.,
      78414.,  79548.,  80682.,  81816.,  83364.,  84504.,  85644.,  86784.,
      90114.,  91284.,  92454.,  93624.,  95256.,  96432.,  97608.,  98784.,
      100446., 101628., 102810., 103992., 105684., 106872., 108060., 109248.,
      122541., 124314., 126087., 127860., 130254., 132036., 133818., 135600.,
      138039., 139830., 141621., 143412., 145896., 147696., 149496., 151296.,
      124881., 126690., 128499., 130308., 132738., 134556., 136374., 138192.,
      140667., 142494., 144321., 146148., 148668., 150504., 152340., 154176.,
      127221., 129066., 130911., 132756., 135222., 137076., 138930., 140784.,
      143295., 145158., 147021., 148884., 151440., 153312., 155184., 157056.,
      129561., 131442., 133323., 135204., 137706., 139596., 141486., 143376.,
      145923., 147822., 149721., 151620., 154212., 156120., 158028., 159936.,
      76866.,  78132.,  79398.,  80664.,  82296.,  83568.,  84840.,  86112.,
      87774.,  89052.,  90330.,  91608.,  93300.,  94584.,  95868.,  97152.,
      100626., 101940., 103254., 104568., 106344., 107664., 108984., 110304.,
      112110., 113436., 114762., 116088., 117924., 119256., 120588., 121920.,
      136581., 138570., 140559., 142548., 145158., 147156., 149154., 151152.,
      153807., 155814., 157821., 159828., 162528., 164544., 166560., 168576.,
      138921., 140946., 142971., 144996., 147642., 149676., 151710., 153744.,
      156435., 158478., 160521., 162564., 165300., 167352., 169404., 171456.,
      141261., 143322., 145383., 147444., 150126., 152196., 154266., 156336.,
      159063., 161142., 163221., 165300., 168072., 170160., 172248., 174336.,
      143601., 145698., 147795., 149892., 152610., 154716., 156822., 158928.,
      161691., 163806., 165921., 168036., 170844., 172968., 175092., 177216.,
      85074.,  86484.,  87894.,  89304.,  91080.,  92496.,  93912.,  95328.,
      97134.,  98556.,  99978.,  101400., 103236., 104664., 106092., 107520.,
      111138., 112596., 114054., 115512., 117432., 118896., 120360., 121824.,
      123774., 125244., 126714., 128184., 130164., 131640., 133116., 134592.,
      150621., 152826., 155031., 157236., 160062., 162276., 164490., 166704.,
      169575., 171798., 174021., 176244., 179160., 181392., 183624., 185856.,
      152961., 155202., 157443., 159684., 162546., 164796., 167046., 169296.,
      172203., 174462., 176721., 178980., 181932., 184200., 186468., 188736.,
      155301., 157578., 159855., 162132., 165030., 167316., 169602., 171888.,
      174831., 177126., 179421., 181716., 184704., 187008., 189312., 191616.,
      157641., 159954., 162267., 164580., 167514., 169836., 172158., 174480.,
      177459., 179790., 182121., 184452., 187476., 189816., 192156., 194496.,
      93282.,  94836.,  96390.,  97944.,  99864.,  101424., 102984., 104544.,
      106494., 108060., 109626., 111192., 113172., 114744., 116316., 117888.,
      51196.,  52216.,  53236.,  54256.,  55488.,  56512.,  57536.,  58560.,
      59812.,  60840.,  61868.,  62896.,  64168.,  65200.,  66232.,  67264.,
      65206.,  66748.,  68290.,  69832.,  71644.,  73192.,  74740.,  76288.,
      78130.,  79684.,  81238.,  82792.,  84664.,  86224.,  87784.,  89344.,
      66190.,  67756.,  69322.,  70888.,  72724.,  74296.,  75868.,  77440.,
      79306.,  80884.,  82462.,  84040.,  85936.,  87520.,  89104.,  90688.,
      67174.,  68764.,  70354.,  71944.,  73804.,  75400.,  76996.,  78592.,
      80482.,  82084.,  83686.,  85288.,  87208.,  88816.,  90424.,  92032.,
      68158.,  69772.,  71386.,  73000.,  74884.,  76504.,  78124.,  79744.,
      81658.,  83284.,  84910.,  86536.,  88480.,  90112.,  91744.,  93376.,
      36988.,  38072.,  39156.,  40240.,  41472.,  42560.,  43648.,  44736.,
      45988.,  47080.,  48172.,  49264.,  50536.,  51632.,  52728.,  53824.,
      118780., 119992., 121204., 122416., 124032., 125248., 126464., 127680.,
      129316., 130536., 131756., 132976., 134632., 135856., 137080., 138304.,
      164854., 166684., 168514., 170344., 172732., 174568., 176404., 178240.,
      180658., 182500., 184342., 186184., 188632., 190480., 192328., 194176.,
      166990., 168844., 170698., 172552., 174964., 176824., 178684., 180544.,
      182986., 184852., 186718., 188584., 191056., 192928., 194800., 196672.,
      169126., 171004., 172882., 174760., 177196., 179080., 180964., 182848.,
      185314., 187204., 189094., 190984., 193480., 195376., 197272., 199168.,
      171262., 173164., 175066., 176968., 179428., 181336., 183244., 185152.,
      187642., 189556., 191470., 193384., 195904., 197824., 199744., 201664.,
      104572., 105848., 107124., 108400., 110016., 111296., 112576., 113856.,
      115492., 116776., 118060., 119344., 121000., 122288., 123576., 124864.,
      142674., 144564., 146454., 148344., 150696., 152592., 154488., 156384.,
      158766., 160668., 162570., 164472., 166884., 168792., 170700., 172608.,
      192741., 195594., 198447., 201300., 204774., 207636., 210498., 213360.,
      216879., 219750., 222621., 225492., 229056., 231936., 234816., 237696.,
      195081., 197970., 200859., 203748., 207258., 210156., 213054., 215952.,
      219507., 222414., 225321., 228228., 231828., 234744., 237660., 240576.,
      197421., 200346., 203271., 206196., 209742., 212676., 215610., 218544.,
      222135., 225078., 228021., 230964., 234600., 237552., 240504., 243456.,
      199761., 202722., 205683., 208644., 212226., 215196., 218166., 221136.,
      224763., 227742., 230721., 233700., 237372., 240360., 243348., 246336.,
      117906., 119892., 121878., 123864., 126216., 128208., 130200., 132192.,
      134574., 136572., 138570., 140568., 142980., 144984., 146988., 148992.,
      153186., 155220., 157254., 159288., 161784., 163824., 165864., 167904.,
      170430., 172476., 174522., 176568., 179124., 181176., 183228., 185280.,
      206781., 209850., 212919., 215988., 219678., 222756., 225834., 228912.,
      232647., 235734., 238821., 241908., 245688., 248784., 251880., 254976.,
      209121., 212226., 215331., 218436., 222162., 225276., 228390., 231504.,
      235275., 238398., 241521., 244644., 248460., 251592., 254724., 257856.,
      211461., 214602., 217743., 220884., 224646., 227796., 230946., 234096.,
      237903., 241062., 244221., 247380., 251232., 254400., 257568., 260736.,
      213801., 216978., 220155., 223332., 227130., 230316., 233502., 236688.,
      240531., 243726., 246921., 250116., 254004., 257208., 260412., 263616.,
      126114., 128244., 130374., 132504., 135000., 137136., 139272., 141408.,
      143934., 146076., 148218., 150360., 152916., 155064., 157212., 159360.,
      163698., 165876., 168054., 170232., 172872., 175056., 177240., 179424.,
      182094., 184284., 186474., 188664., 191364., 193560., 195756., 197952.,
      220821., 224106., 227391., 230676., 234582., 237876., 241170., 244464.,
      248415., 251718., 255021., 258324., 262320., 265632., 268944., 272256.,
      223161., 226482., 229803., 233124., 237066., 240396., 243726., 247056.,
      251043., 254382., 257721., 261060., 265092., 268440., 271788., 275136.,
      225501., 228858., 232215., 235572., 239550., 242916., 246282., 249648.,
      253671., 257046., 260421., 263796., 267864., 271248., 274632., 278016.,
      227841., 231234., 234627., 238020., 242034., 245436., 248838., 252240.,
      256299., 259710., 263121., 266532., 270636., 274056., 277476., 280896.,
      134322., 136596., 138870., 141144., 143784., 146064., 148344., 150624.,
      153294., 155580., 157866., 160152., 162852., 165144., 167436., 169728.,
      174210., 176532., 178854., 181176., 183960., 186288., 188616., 190944.,
      193758., 196092., 198426., 200760., 203604., 205944., 208284., 210624.,
      234861., 238362., 241863., 245364., 249486., 252996., 256506., 260016.,
      264183., 267702., 271221., 274740., 278952., 282480., 286008., 289536.,
      237201., 240738., 244275., 247812., 251970., 255516., 259062., 262608.,
      266811., 270366., 273921., 277476., 281724., 285288., 288852., 292416.,
      239541., 243114., 246687., 250260., 254454., 258036., 261618., 265200.,
      269439., 273030., 276621., 280212., 284496., 288096., 291696., 295296.,
      241881., 245490., 249099., 252708., 256938., 260556., 264174., 267792.,
      272067., 275694., 279321., 282948., 287268., 290904., 294540., 298176.,
      142530., 144948., 147366., 149784., 152568., 154992., 157416., 159840.,
      162654., 165084., 167514., 169944., 172788., 175224., 177660., 180096.,
      79420.,  81016.,  82612.,  84208.,  86016.,  87616.,  89216.,  90816.,
      92644.,  94248.,  95852.,  97456.,  99304.,  100912., 102520., 104128.,
      100630., 103036., 105442., 107848., 110524., 112936., 115348., 117760.,
      120466., 122884., 125302., 127720., 130456., 132880., 135304., 137728.,
      101614., 104044., 106474., 108904., 111604., 114040., 116476., 118912.,
      121642., 124084., 126526., 128968., 131728., 134176., 136624., 139072.,
      102598., 105052., 107506., 109960., 112684., 115144., 117604., 120064.,
      122818., 125284., 127750., 130216., 133000., 135472., 137944., 140416.,
      103582., 106060., 108538., 111016., 113764., 116248., 118732., 121216.,
      123994., 126484., 128974., 131464., 134272., 136768., 139264., 141760.,
      55996.,  57656.,  59316.,  60976.,  62784.,  64448.,  66112.,  67776.,
      69604.,  71272.,  72940.,  74608.,  76456.,  78128.,  79800.,  81472.};
  const std::array<int, 4> in_shape = {{3, 6, 6, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow3Stride1, VALID3x6x6x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      24261.,  24522.,  24783.,  25044.,  25926.,  26196.,  26466.,  26736.,
      27663.,  27942.,  28221.,  28500.,  29472.,  29760.,  30048.,  30336.,
      26601.,  26898.,  27195.,  27492.,  28410.,  28716.,  29022.,  29328.,
      30291.,  30606.,  30921.,  31236.,  32244.,  32568.,  32892.,  33216.,
      28941.,  29274.,  29607.,  29940.,  30894.,  31236.,  31578.,  31920.,
      32919.,  33270.,  33621.,  33972.,  35016.,  35376.,  35736.,  36096.,
      31281.,  31650.,  32019.,  32388.,  33378.,  33756.,  34134.,  34512.,
      35547.,  35934.,  36321.,  36708.,  37788.,  38184.,  38580.,  38976.,
      38301.,  38778.,  39255.,  39732.,  40830.,  41316.,  41802.,  42288.,
      43431.,  43926.,  44421.,  44916.,  46104.,  46608.,  47112.,  47616.,
      40641.,  41154.,  41667.,  42180.,  43314.,  43836.,  44358.,  44880.,
      46059.,  46590.,  47121.,  47652.,  48876.,  49416.,  49956.,  50496.,
      42981.,  43530.,  44079.,  44628.,  45798.,  46356.,  46914.,  47472.,
      48687.,  49254.,  49821.,  50388.,  51648.,  52224.,  52800.,  53376.,
      45321.,  45906.,  46491.,  47076.,  48282.,  48876.,  49470.,  50064.,
      51315.,  51918.,  52521.,  53124.,  54420.,  55032.,  55644.,  56256.,
      52341.,  53034.,  53727.,  54420.,  55734.,  56436.,  57138.,  57840.,
      59199.,  59910.,  60621.,  61332.,  62736.,  63456.,  64176.,  64896.,
      54681.,  55410.,  56139.,  56868.,  58218.,  58956.,  59694.,  60432.,
      61827.,  62574.,  63321.,  64068.,  65508.,  66264.,  67020.,  67776.,
      57021.,  57786.,  58551.,  59316.,  60702.,  61476.,  62250.,  63024.,
      64455.,  65238.,  66021.,  66804.,  68280.,  69072.,  69864.,  70656.,
      59361.,  60162.,  60963.,  61764.,  63186.,  63996.,  64806.,  65616.,
      67083.,  67902.,  68721.,  69540.,  71052.,  71880.,  72708.,  73536.,
      66381.,  67290.,  68199.,  69108.,  70638.,  71556.,  72474.,  73392.,
      74967.,  75894.,  76821.,  77748.,  79368.,  80304.,  81240.,  82176.,
      68721.,  69666.,  70611.,  71556.,  73122.,  74076.,  75030.,  75984.,
      77595.,  78558.,  79521.,  80484.,  82140.,  83112.,  84084.,  85056.,
      71061.,  72042.,  73023.,  74004.,  75606.,  76596.,  77586.,  78576.,
      80223.,  81222.,  82221.,  83220.,  84912.,  85920.,  86928.,  87936.,
      73401.,  74418.,  75435.,  76452.,  78090.,  79116.,  80142.,  81168.,
      82851.,  83886.,  84921.,  85956.,  87684.,  88728.,  89772.,  90816.,
      108501., 110058., 111615., 113172., 115350., 116916., 118482., 120048.,
      122271., 123846., 125421., 126996., 129264., 130848., 132432., 134016.,
      110841., 112434., 114027., 115620., 117834., 119436., 121038., 122640.,
      124899., 126510., 128121., 129732., 132036., 133656., 135276., 136896.,
      113181., 114810., 116439., 118068., 120318., 121956., 123594., 125232.,
      127527., 129174., 130821., 132468., 134808., 136464., 138120., 139776.,
      115521., 117186., 118851., 120516., 122802., 124476., 126150., 127824.,
      130155., 131838., 133521., 135204., 137580., 139272., 140964., 142656.,
      122541., 124314., 126087., 127860., 130254., 132036., 133818., 135600.,
      138039., 139830., 141621., 143412., 145896., 147696., 149496., 151296.,
      124881., 126690., 128499., 130308., 132738., 134556., 136374., 138192.,
      140667., 142494., 144321., 146148., 148668., 150504., 152340., 154176.,
      127221., 129066., 130911., 132756., 135222., 137076., 138930., 140784.,
      143295., 145158., 147021., 148884., 151440., 153312., 155184., 157056.,
      129561., 131442., 133323., 135204., 137706., 139596., 141486., 143376.,
      145923., 147822., 149721., 151620., 154212., 156120., 158028., 159936.,
      136581., 138570., 140559., 142548., 145158., 147156., 149154., 151152.,
      153807., 155814., 157821., 159828., 162528., 164544., 166560., 168576.,
      138921., 140946., 142971., 144996., 147642., 149676., 151710., 153744.,
      156435., 158478., 160521., 162564., 165300., 167352., 169404., 171456.,
      141261., 143322., 145383., 147444., 150126., 152196., 154266., 156336.,
      159063., 161142., 163221., 165300., 168072., 170160., 172248., 174336.,
      143601., 145698., 147795., 149892., 152610., 154716., 156822., 158928.,
      161691., 163806., 165921., 168036., 170844., 172968., 175092., 177216.,
      150621., 152826., 155031., 157236., 160062., 162276., 164490., 166704.,
      169575., 171798., 174021., 176244., 179160., 181392., 183624., 185856.,
      152961., 155202., 157443., 159684., 162546., 164796., 167046., 169296.,
      172203., 174462., 176721., 178980., 181932., 184200., 186468., 188736.,
      155301., 157578., 159855., 162132., 165030., 167316., 169602., 171888.,
      174831., 177126., 179421., 181716., 184704., 187008., 189312., 191616.,
      157641., 159954., 162267., 164580., 167514., 169836., 172158., 174480.,
      177459., 179790., 182121., 184452., 187476., 189816., 192156., 194496.,
      192741., 195594., 198447., 201300., 204774., 207636., 210498., 213360.,
      216879., 219750., 222621., 225492., 229056., 231936., 234816., 237696.,
      195081., 197970., 200859., 203748., 207258., 210156., 213054., 215952.,
      219507., 222414., 225321., 228228., 231828., 234744., 237660., 240576.,
      197421., 200346., 203271., 206196., 209742., 212676., 215610., 218544.,
      222135., 225078., 228021., 230964., 234600., 237552., 240504., 243456.,
      199761., 202722., 205683., 208644., 212226., 215196., 218166., 221136.,
      224763., 227742., 230721., 233700., 237372., 240360., 243348., 246336.,
      206781., 209850., 212919., 215988., 219678., 222756., 225834., 228912.,
      232647., 235734., 238821., 241908., 245688., 248784., 251880., 254976.,
      209121., 212226., 215331., 218436., 222162., 225276., 228390., 231504.,
      235275., 238398., 241521., 244644., 248460., 251592., 254724., 257856.,
      211461., 214602., 217743., 220884., 224646., 227796., 230946., 234096.,
      237903., 241062., 244221., 247380., 251232., 254400., 257568., 260736.,
      213801., 216978., 220155., 223332., 227130., 230316., 233502., 236688.,
      240531., 243726., 246921., 250116., 254004., 257208., 260412., 263616.,
      220821., 224106., 227391., 230676., 234582., 237876., 241170., 244464.,
      248415., 251718., 255021., 258324., 262320., 265632., 268944., 272256.,
      223161., 226482., 229803., 233124., 237066., 240396., 243726., 247056.,
      251043., 254382., 257721., 261060., 265092., 268440., 271788., 275136.,
      225501., 228858., 232215., 235572., 239550., 242916., 246282., 249648.,
      253671., 257046., 260421., 263796., 267864., 271248., 274632., 278016.,
      227841., 231234., 234627., 238020., 242034., 245436., 248838., 252240.,
      256299., 259710., 263121., 266532., 270636., 274056., 277476., 280896.,
      234861., 238362., 241863., 245364., 249486., 252996., 256506., 260016.,
      264183., 267702., 271221., 274740., 278952., 282480., 286008., 289536.,
      237201., 240738., 244275., 247812., 251970., 255516., 259062., 262608.,
      266811., 270366., 273921., 277476., 281724., 285288., 288852., 292416.,
      239541., 243114., 246687., 250260., 254454., 258036., 261618., 265200.,
      269439., 273030., 276621., 280212., 284496., 288096., 291696., 295296.,
      241881., 245490., 249099., 252708., 256938., 260556., 264174., 267792.,
      272067., 275694., 279321., 282948., 287268., 290904., 294540., 298176.};
  const std::array<int, 4> in_shape = {{3, 6, 6, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}